Function name: make_rounds
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/BRIO_2D_multidimarr.py
with signature: (array(int64, 1d, C), array(int64, 1d, C), array(int64, 1d, C), array(int64, 1d, C)) -> none
5: @njit
6: def make_rounds(rounds, boundary_indices, points_left_old, points_left_new):
7:     '''
8:     Divides the points into different groups, of increasing sizes,
9:     according to the Biased Randomized Insertion Order.
10:
11:               rounds : Nx1 array; stores the indices of points corresponding to
12:                        a round.
13:     boundary_indices : Stores the indices (corresponding to the rounds array),
14:                        where the rounds end.
15:      points_left_old : Nx1 array
16:      points_left_new : Nx1 array
17:     '''
18:
19:     len_points = len(rounds)
      label 0
        rounds = arg(0, name=rounds) :: array(int64, 1d, C)
        boundary_indices = arg(1, name=boundary_indices) :: array(int64, 1d, C)
        points_left_old = arg(2, name=points_left_old) :: array(int64, 1d, C)
        points_left_new = arg(3, name=points_left_new) :: array(int64, 1d, C)
        $2load_global.0 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $6call_function.2 = call $2load_global.0(rounds, func=$2load_global.0, args=[Var(rounds, BRIO_2D_multidimarr.py:19)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> int64
        del $2load_global.0
        len_points = $6call_function.2 :: int64
        del $6call_function.2
20:     num_rounds = int(np.round(np.log2(len_points), 0))
        $10load_global.3 = global(int: <class 'int'>) :: Function(<class 'int'>)
        $12load_global.4 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $14load_method.5 = getattr(value=$12load_global.4, attr=round) :: Function(<function round_ at 0x7f51e4bc4050>)
        del $12load_global.4
        $16load_global.6 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $18load_method.7 = getattr(value=$16load_global.6, attr=log2) :: Function(<ufunc 'log2'>)
        del $16load_global.6
        $22call_method.9 = call $18load_method.7(len_points, func=$18load_method.7, args=[Var(len_points, BRIO_2D_multidimarr.py:19)], kws=(), vararg=None) :: (int64,) -> float64
        del $18load_method.7
        $const24.10 = const(int, 0) :: Literal[int](0)
        $26call_method.11 = call $14load_method.5($22call_method.9, $const24.10, func=$14load_method.5, args=[Var($22call_method.9, BRIO_2D_multidimarr.py:20), Var($const24.10, BRIO_2D_multidimarr.py:20)], kws=(), vararg=None) :: (float64, Literal[int](0)) -> float64
        del $const24.10
        del $22call_method.9
        del $14load_method.5
        $28call_function.12 = call $10load_global.3($26call_method.11, func=$10load_global.3, args=[Var($26call_method.11, BRIO_2D_multidimarr.py:20)], kws=(), vararg=None) :: (float64,) -> int64
        del $26call_method.11
        del $10load_global.3
        num_rounds = $28call_function.12 :: int64
        del $28call_function.12
21:
22:     points_left_old_end = len_points
        points_left_old_end = len_points :: int64
23:     points_left_new_end = 0
        $const36.14 = const(int, 0) :: Literal[int](0)
        points_left_new_end = $const36.14 :: int64
        del points_left_new_end
        del $const36.14
24:
25:     boundary_indices_insertion_idx = num_rounds
        boundary_indices_insertion_idx = num_rounds :: int64
26:     rounds_insertion_idx = len_points-1
        $const46.17 = const(int, 1) :: Literal[int](1)
        $48binary_subtract.18 = len_points - $const46.17 :: int64
        del len_points
        del $const46.17
        rounds_insertion_idx = $48binary_subtract.18 :: int64
        del $48binary_subtract.18
27:     round_idx = 1
        $const52.19 = const(int, 1) :: Literal[int](1)
        round_idx = $const52.19 :: int64
        del $const52.19
28:
29:     boundary_indices[boundary_indices_insertion_idx] = rounds_insertion_idx+1
        $const58.21 = const(int, 1) :: Literal[int](1)
        $60binary_add.22 = rounds_insertion_idx + $const58.21 :: int64
        del $const58.21
        boundary_indices[boundary_indices_insertion_idx] = $60binary_add.22 :: (array(int64, 1d, C), int64, int64) -> none
        del $60binary_add.22
30:     boundary_indices_insertion_idx -= 1
        $const70.26 = const(int, 1) :: Literal[int](1)
        $72inplace_subtract.27 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=boundary_indices_insertion_idx, rhs=$const70.26, static_lhs=Undefined, static_rhs=Undefined) :: int64
        del boundary_indices_insertion_idx
        del $const70.26
        boundary_indices_insertion_idx.1 = $72inplace_subtract.27 :: int64
        del $72inplace_subtract.27
31:
32:     while round_idx < num_rounds:
        jump 76
      label 76
        jump 78
      label 78
        $82compare_op.2 = round_idx < num_rounds :: bool
        branch $82compare_op.2, 86, 234
33:
34:         points_left_new_end = 0
          label 86
            del $82compare_op.2
            $const86.0 = const(int, 0) :: Literal[int](0)
            points_left_new_end = $const86.0 :: int64
            del $const86.0
35:
36:         for i in range(points_left_old_end):
            jump 90
          label 90
            $92load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
            $96call_function.2 = call $92load_global.0(points_left_old_end, func=$92load_global.0, args=[Var(points_left_old_end, BRIO_2D_multidimarr.py:22)], kws=(), vararg=None) :: (int64,) -> range_state_int64
            del points_left_old_end
            del $92load_global.0
            $98get_iter.3 = getiter(value=$96call_function.2) :: range_iter_int64
            del $96call_function.2
            $phi100.0 = $98get_iter.3 :: range_iter_int64
            del $98get_iter.3
            jump 100
          label 100
            $100for_iter.1 = iternext(value=$phi100.0) :: pair<int64, bool>
            $100for_iter.2 = pair_first(value=$100for_iter.1) :: int64
            $100for_iter.3 = pair_second(value=$100for_iter.1) :: bool
            del $100for_iter.1
            $phi102.1 = $100for_iter.2 :: int64
            del $100for_iter.2
            branch $100for_iter.3, 102, 168
          label 102
            del $100for_iter.3
            i = $phi102.1 :: int64
            del $phi102.1
          label 275
            jump 100
37:             if np.random.randint(low=0, high=2) == 1:
                $104load_global.2 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                $106load_attr.3 = getattr(value=$104load_global.2, attr=random) :: Module(<module 'numpy.random' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/random/__init__.py'>)
                del $104load_global.2
                $108load_attr.4 = getattr(value=$106load_attr.3, attr=randint) :: Function(np.random.randint)
                del $106load_attr.3
                $const110.5 = const(int, 0) :: Literal[int](0)
                $const112.6 = const(int, 2) :: Literal[int](2)
                $116call_function_kw.8 = call $108load_attr.4(func=$108load_attr.4, args=[], kws=[('low', Var($const110.5, BRIO_2D_multidimarr.py:37)), ('high', Var($const112.6, BRIO_2D_multidimarr.py:37))], vararg=None) :: (int64, int64) -> int64
                del $const112.6
                del $const110.5
                del $108load_attr.4
                $const118.9 = const(int, 1) :: Literal[int](1)
                $120compare_op.10 = $116call_function_kw.8 == $const118.9 :: bool
                del $const118.9
                del $116call_function_kw.8
                branch $120compare_op.10, 124, 146
38:                 rounds[rounds_insertion_idx] = points_left_old[i]
                  label 124
                    del $120compare_op.10
                    $128binary_subscr.3 = getitem(value=points_left_old, index=i) :: int64
                    del i
                    rounds[rounds_insertion_idx] = $128binary_subscr.3 :: (array(int64, 1d, C), int64, int64) -> none
                    del $128binary_subscr.3
39:                 rounds_insertion_idx -= 1
                    $const138.7 = const(int, 1) :: Literal[int](1)
                    $140inplace_subtract.8 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=rounds_insertion_idx, rhs=$const138.7, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const138.7
                    rounds_insertion_idx = $140inplace_subtract.8 :: int64
                    del $140inplace_subtract.8
                    jump 275
40:             else:
41:                 points_left_new[points_left_new_end] = points_left_old[i]
                  label 146
                    del $120compare_op.10
                    $150binary_subscr.3 = getitem(value=points_left_old, index=i) :: int64
                    del i
                    points_left_new[points_left_new_end] = $150binary_subscr.3 :: (array(int64, 1d, C), int64, int64) -> none
                    del $150binary_subscr.3
42:                 points_left_new_end += 1
                    $const160.7 = const(int, 1) :: Literal[int](1)
                    $162inplace_add.8 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=points_left_new_end, rhs=$const160.7, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const160.7
                    points_left_new_end = $162inplace_add.8 :: int64
                    del $162inplace_add.8
                    jump 275
                  label 168
43:
44:         for i in range(points_left_new_end):
            del $phi102.1
            del $phi100.0
            del $100for_iter.3
            jump 170
          label 170
            $172load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
            $176call_function.2 = call $172load_global.0(points_left_new_end, func=$172load_global.0, args=[Var(points_left_new_end, BRIO_2D_multidimarr.py:23)], kws=(), vararg=None) :: (int64,) -> range_state_int64
            del $172load_global.0
            $178get_iter.3 = getiter(value=$176call_function.2) :: range_iter_int64
            del $176call_function.2
            $phi180.0 = $178get_iter.3 :: range_iter_int64
            del $178get_iter.3
            jump 180
          label 180
            $180for_iter.1 = iternext(value=$phi180.0) :: pair<int64, bool>
            $180for_iter.2 = pair_first(value=$180for_iter.1) :: int64
            $180for_iter.3 = pair_second(value=$180for_iter.1) :: bool
            del $180for_iter.1
            $phi182.1 = $180for_iter.2 :: int64
            del $180for_iter.2
            branch $180for_iter.3, 182, 198
          label 182
            del $180for_iter.3
            i = $phi182.1 :: int64
            del $phi182.1
45:             points_left_old[i] = points_left_new[i]
                $188binary_subscr.4 = getitem(value=points_left_new, index=i) :: int64
                points_left_old[i] = $188binary_subscr.4 :: (array(int64, 1d, C), int64, int64) -> none
                del i
                del $188binary_subscr.4
                jump 180
              label 198
46:
47:         points_left_old_end = points_left_new_end
            del $phi182.1
            del $phi180.0
            del $180for_iter.3
            jump 200
          label 200
            points_left_old_end = points_left_new_end :: int64
            del points_left_new_end
48:
49:         boundary_indices[
50:             boundary_indices_insertion_idx
51:         ] = rounds_insertion_idx+1
            $const206.2 = const(int, 1) :: Literal[int](1)
            $208binary_add.3 = rounds_insertion_idx + $const206.2 :: int64
            del $const206.2
            boundary_indices[boundary_indices_insertion_idx.1] = $208binary_add.3 :: (array(int64, 1d, C), int64, int64) -> none
            del $208binary_add.3
52:         boundary_indices_insertion_idx -= 1
            $const218.7 = const(int, 1) :: Literal[int](1)
            $220inplace_subtract.8 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=boundary_indices_insertion_idx.1, rhs=$const218.7, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const218.7
            boundary_indices_insertion_idx.1 = $220inplace_subtract.8 :: int64
            del $220inplace_subtract.8
53:
54:         round_idx += 1
            $const226.10 = const(int, 1) :: Literal[int](1)
            $228inplace_add.11 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=round_idx, rhs=$const226.10, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const226.10
            round_idx = $228inplace_add.11 :: int64
            del $228inplace_add.11
            jump 78
          label 234
55:
56:     for i in range(points_left_old_end):
        del round_idx
        del points_left_new
        del num_rounds
        del $82compare_op.2
        jump 236
      label 236
        $238load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $242call_function.2 = call $238load_global.0(points_left_old_end, func=$238load_global.0, args=[Var(points_left_old_end, BRIO_2D_multidimarr.py:22)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del points_left_old_end
        del $238load_global.0
        $244get_iter.3 = getiter(value=$242call_function.2) :: range_iter_int64
        del $242call_function.2
        $phi246.0 = $244get_iter.3 :: range_iter_int64
        del $244get_iter.3
        jump 246
      label 246
        $246for_iter.1 = iternext(value=$phi246.0) :: pair<int64, bool>
        $246for_iter.2 = pair_first(value=$246for_iter.1) :: int64
        $246for_iter.3 = pair_second(value=$246for_iter.1) :: bool
        del $246for_iter.1
        $phi248.1 = $246for_iter.2 :: int64
        del $246for_iter.2
        branch $246for_iter.3, 248, 272
      label 248
        del $246for_iter.3
        i = $phi248.1 :: int64
        del $phi248.1
57:         rounds[rounds_insertion_idx] = points_left_old[i]
            $254binary_subscr.4 = getitem(value=points_left_old, index=i) :: int64
            del i
            rounds[rounds_insertion_idx] = $254binary_subscr.4 :: (array(int64, 1d, C), int64, int64) -> none
            del $254binary_subscr.4
58:         rounds_insertion_idx -= 1
            $const264.8 = const(int, 1) :: Literal[int](1)
            $266inplace_subtract.9 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=rounds_insertion_idx, rhs=$const264.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const264.8
            rounds_insertion_idx = $266inplace_subtract.9 :: int64
            del $266inplace_subtract.9
            jump 246
          label 272
59:
60:     boundary_indices[boundary_indices_insertion_idx] = rounds_insertion_idx+1
        del rounds
        del points_left_old
        del $phi248.1
        del $phi246.0
        del $246for_iter.3
        jump 274
      label 274
        $const276.1 = const(int, 1) :: Literal[int](1)
        $278binary_add.2 = rounds_insertion_idx + $const276.1 :: int64
        del rounds_insertion_idx
        del $const276.1
        boundary_indices[boundary_indices_insertion_idx.1] = $278binary_add.2 :: (array(int64, 1d, C), int64, int64) -> none
        del boundary_indices
        del $278binary_add.2
61:     boundary_indices_insertion_idx -= 1
        $const288.6 = const(int, 1) :: Literal[int](1)
        $290inplace_subtract.7 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=boundary_indices_insertion_idx.1, rhs=$const288.6, static_lhs=Undefined, static_rhs=Undefined) :: int64
        del boundary_indices_insertion_idx.1
        del $const288.6
        boundary_indices_insertion_idx.2 = $290inplace_subtract.7 :: int64
        del boundary_indices_insertion_idx.2
        del $290inplace_subtract.7
62:
63:     return
        $const294.8 = const(NoneType, None) :: none
        $296return_value.9 = cast(value=$const294.8) :: none
        del $const294.8
        return $296return_value.9



Function name: round_ndigits
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arraymath.py
with signature: (float64, Literal[int](0)) -> float64
2861: def round_ndigits(x, ndigits):
2862:     if math.isinf(x) or math.isnan(x):
      label 0
        x = arg(0, name=x) :: float64
        ndigits = arg(1, name=ndigits) :: Literal[int](0)
        $2load_global.0 = global(math: <module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>) :: Module(<module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>)
        $4load_method.1 = getattr(value=$2load_global.0, attr=isinf) :: Function(<built-in function isinf>)
        del $2load_global.0
        $8call_method.3 = call $4load_method.1(x, func=$4load_method.1, args=[Var(x, arraymath.py:2862)], kws=(), vararg=None) :: (float64,) -> bool
        del $4load_method.1
        branch $8call_method.3, 22, 12
      label 12
        del $8call_method.3
        $12load_global.0 = global(math: <module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>) :: Module(<module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>)
        $14load_method.1 = getattr(value=$12load_global.0, attr=isnan) :: Function(<built-in function isnan>)
        del $12load_global.0
        $18call_method.3 = call $14load_method.1(x, func=$14load_method.1, args=[Var(x, arraymath.py:2862)], kws=(), vararg=None) :: (float64,) -> bool
        del $14load_method.1
        branch $18call_method.3, 22, 26
2863:         return x
          label 22
            del ndigits
            del $8call_method.3
            del $18call_method.3
            $24return_value.1 = cast(value=x) :: float64
            del x
            return $24return_value.1
2864:
2865:     # NOTE: this is CPython's algorithm, but perhaps this is overkill
2866:     # when emulating Numpy's behaviour.
2867:     if ndigits >= 0:
      label 26
        del $18call_method.3
        $const28.1 = const(int, 0) :: Literal[int](0)
        $30compare_op.2 = ndigits >= $const28.1 :: bool
        del $const28.1
        branch $30compare_op.2, 34, 116
2868:         if ndigits > 22:
          label 34
            del $30compare_op.2
            $const36.1 = const(int, 22) :: Literal[int](22)
            $38compare_op.2 = ndigits > $const36.1 :: bool
            del $const36.1
            branch $38compare_op.2, 42, 60
2869:             # pow1 and pow2 are each safe from overflow, but
2870:             # pow1*pow2 ~= pow(10.0, ndigits) might overflow.
2871:             pow1 = 10.0 ** (ndigits - 22)
              label 42
                del $38compare_op.2
                $const42.0 = const(float, 10.0) :: float64
                $const46.2 = const(int, 22) :: Literal[int](22)
                $48binary_subtract.3 = ndigits - $const46.2 :: int64
                del ndigits
                del $const46.2
                $50binary_power.4 = $const42.0 ** $48binary_subtract.3 :: float64
                del $const42.0
                del $48binary_subtract.3
                pow1 = $50binary_power.4 :: float64
                del $50binary_power.4
2872:             pow2 = 1e22
                $const54.5 = const(float, 1e+22) :: float64
                pow2 = $const54.5 :: float64
                del $const54.5
                jump 72
2873:         else:
2874:             pow1 = 10.0 ** ndigits
              label 60
                del $38compare_op.2
                $const60.0 = const(float, 10.0) :: float64
                $64binary_power.2 = $const60.0 ** ndigits :: float64
                del ndigits
                del $const60.0
                pow1 = $64binary_power.2 :: float64
                del $64binary_power.2
2875:             pow2 = 1.0
                $const68.3 = const(float, 1.0) :: float64
                pow2 = $const68.3 :: float64
                del $const68.3
2876:         y = (x * pow1) * pow2
            jump 72
          label 72
            $76binary_multiply.2 = x * pow1 :: float64
            $80binary_multiply.4 = $76binary_multiply.2 * pow2 :: float64
            del $76binary_multiply.2
            y = $80binary_multiply.4 :: float64
            del $80binary_multiply.4
2877:         if math.isinf(y):
            $84load_global.5 = global(math: <module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>) :: Module(<module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>)
            $86load_method.6 = getattr(value=$84load_global.5, attr=isinf) :: Function(<built-in function isinf>)
            del $84load_global.5
            $90call_method.8 = call $86load_method.6(y, func=$86load_method.6, args=[Var(y, arraymath.py:2876)], kws=(), vararg=None) :: (float64,) -> bool
            del $86load_method.6
            branch $90call_method.8, 94, 98
2878:             return x
              label 94
                del y
                del pow2
                del pow1
                del $90call_method.8
                $96return_value.1 = cast(value=x) :: float64
                del x
                return $96return_value.1
2879:         return (np.round(y) / pow2) / pow1
          label 98
            del x
            del $90call_method.8
            $98load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
            $100load_method.1 = getattr(value=$98load_global.0, attr=round) :: Function(<function round_ at 0x7f51e4bc4050>)
            del $98load_global.0
            $104call_method.3 = call $100load_method.1(y, func=$100load_method.1, args=[Var(y, arraymath.py:2876)], kws=(), vararg=None) :: (float64,) -> float64
            del y
            del $100load_method.1
            $108binary_true_divide.5 = $104call_method.3 / pow2 :: float64
            del pow2
            del $104call_method.3
            $112binary_true_divide.7 = $108binary_true_divide.5 / pow1 :: float64
            del pow1
            del $108binary_true_divide.5
            $114return_value.8 = cast(value=$112binary_true_divide.7) :: float64
            del $112binary_true_divide.7
            return $114return_value.8
2880:
2881:     else:
2882:         pow1 = 10.0 ** (-ndigits)
          label 116
            del $30compare_op.2
            $const116.0 = const(float, 10.0) :: float64
            $120unary_negative.2 = unary(fn=<built-in function neg>, value=ndigits) :: int64
            del ndigits
            $122binary_power.3 = $const116.0 ** $120unary_negative.2 :: float64
            del $const116.0
            del $120unary_negative.2
            pow1 = $122binary_power.3 :: float64
            del $122binary_power.3
2883:         y = x / pow1
            $130binary_true_divide.6 = x / pow1 :: float64
            del x
            y = $130binary_true_divide.6 :: float64
            del $130binary_true_divide.6
2884:         return np.round(y) * pow1
            $134load_global.7 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
            $136load_method.8 = getattr(value=$134load_global.7, attr=round) :: Function(<function round_ at 0x7f51e4bc4050>)
            del $134load_global.7
            $140call_method.10 = call $136load_method.8(y, func=$136load_method.8, args=[Var(y, arraymath.py:2876)], kws=(), vararg=None) :: (float64,) -> float64
            del y
            del $136load_method.8
            $144binary_multiply.12 = $140call_method.10 * pow1 :: float64
            del pow1
            del $140call_method.10
            $146return_value.13 = cast(value=$144binary_multiply.12) :: float64
            del $144binary_multiply.12
            return $146return_value.13



Function name: int_power
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/numbers.py
with signature: (float64, int64) -> float64
223: def int_power(a, b):
224:     # Ensure computations are done with a large enough width
225:     r = tp(1)
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: int64
        $2load_deref.0 = freevar(tp: float64) :: class(float64)
        $const4.1 = const(int, 1) :: Literal[int](1)
        $6call_function.2 = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:225)], kws=(), vararg=None) :: (Literal[int](1),) -> float64
        del $const4.1
        del $2load_deref.0
        r = $6call_function.2 :: float64
        del $6call_function.2
226:     a = tp(a)
        $10load_deref.3 = freevar(tp: float64) :: class(float64)
        $14call_function.5 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:225)], kws=(), vararg=None) :: (float64,) -> float64
        del a
        del $10load_deref.3
        a.1 = $14call_function.5 :: float64
        del $14call_function.5
227:     if b < 0:
        $const20.7 = const(int, 0) :: Literal[int](0)
        $22compare_op.8 = b < $const20.7 :: bool
        del $const20.7
        branch $22compare_op.8, 26, 98
228:         invert = True
          label 26
            del $22compare_op.8
            $const26.0 = const(bool, True) :: bool
            invert = $const26.0 :: bool
            del $const26.0
229:         exp = -b
            $32unary_negative.2 = unary(fn=<built-in function neg>, value=b) :: int64
            exp = $32unary_negative.2 :: int64
            del $32unary_negative.2
230:         if exp < 0:
            $const38.4 = const(int, 0) :: Literal[int](0)
            $40compare_op.5 = exp < $const38.4 :: bool
            del $const38.4
            branch $40compare_op.5, 44, 48
231:             raise OverflowError
              label 44
                del r
                del invert
                del exp
                del b
                del a.1
                del $40compare_op.5
                $44load_global.0 = global(OverflowError: <class 'OverflowError'>) :: OverflowError
                del $44load_global.0
                raise <class 'OverflowError'>
232:         if is_integer:
          label 48
            del $40compare_op.5
            $48load_deref.0 = freevar(is_integer: False) :: bool
            branch $48load_deref.0, 52, 106
233:             if a == 0:
              label 52
                del $48load_deref.0
                $const54.1 = const(int, 0) :: Literal[int](0)
                $56compare_op.2 = a.1 == $const54.1 :: bool
                del $const54.1
                branch $56compare_op.2, 60, 76
234:                 if zerodiv_return:
                  label 60
                    del r
                    del invert
                    del exp
                    del b
                    del a.1
                    del $56compare_op.2
                    $60load_deref.0 = freevar(zerodiv_return: False) :: bool
                    branch $60load_deref.0, 64, 68
235:                     return zerodiv_return
                      label 64
                        del $60load_deref.0
                        $64load_deref.0 = freevar(zerodiv_return: False) :: bool
                        $66return_value.1 = cast(value=$64load_deref.0) :: float64
                        del $64load_deref.0
                        return $66return_value.1
236:                 else:
237:                     raise ZeroDivisionError("0 cannot be raised to a negative power")
                      label 68
                        del $60load_deref.0
                        $68load_global.0 = global(ZeroDivisionError: <class 'ZeroDivisionError'>) :: ZeroDivisionError
                        $const70.1 = const(str, 0 cannot be raised to a negative power) :: Literal[str](0 cannot be raised to a negative power)
                        $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:237)], kws=(), vararg=None) :: () -> ZeroDivisionError(...)
                        del $const70.1
                        del $72call_function.2
                        del $68load_global.0
                        raise <class 'ZeroDivisionError'>('0 cannot be raised to a negative power')
238:             if a != 1 and a != -1:
              label 76
                del $56compare_op.2
                $const78.1 = const(int, 1) :: Literal[int](1)
                $80compare_op.2 = a.1 != $const78.1 :: bool
                del $const78.1
                branch $80compare_op.2, 84, 106
              label 84
                del $80compare_op.2
                $const86.1 = const(int, -1) :: Literal[int](-1)
                $88compare_op.2 = a.1 != $const86.1 :: bool
                del $const86.1
                branch $88compare_op.2, 92, 106
239:                 return 0
                  label 92
                    del r
                    del invert
                    del exp
                    del b
                    del a.1
                    del $88compare_op.2
                    $const92.0 = const(int, 0) :: Literal[int](0)
                    $94return_value.1 = cast(value=$const92.0) :: float64
                    del $const92.0
                    return $94return_value.1
240:     else:
241:         invert = False
          label 98
            del $22compare_op.8
            $const98.0 = const(bool, False) :: bool
            invert = $const98.0 :: bool
            del $const98.0
242:         exp = b
            exp = b :: int64
243:     if exp > 0x10000:
        jump 106
      label 106
        del $88compare_op.2
        del $80compare_op.2
        del $48load_deref.0
        $const108.1 = const(int, 65536) :: Literal[int](65536)
        $110compare_op.2 = exp > $const108.1 :: bool
        del $const108.1
        branch $110compare_op.2, 114, 130
244:         # Optimization cutoff: fallback on the generic algorithm
245:         return math.pow(a, float(b))
          label 114
            del r
            del invert
            del exp
            del $110compare_op.2
            $114load_global.0 = global(math: <module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>) :: Module(<module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>)
            $116load_method.1 = getattr(value=$114load_global.0, attr=pow) :: Function(<built-in function pow>)
            del $114load_global.0
            $120load_global.3 = global(float: <class 'float'>) :: Function(<class 'float'>)
            $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:225)], kws=(), vararg=None) :: (int64,) -> float64
            del b
            del $120load_global.3
            $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:226), Var($124call_function.5, numbers.py:245)], kws=(), vararg=None) :: (float64, float64) -> float64
            del a.1
            del $124call_function.5
            del $116load_method.1
            $128return_value.7 = cast(value=$126call_method.6) :: float64
            del $126call_method.6
            return $128return_value.7
246:     while exp != 0:
      label 130
        del b
        del $110compare_op.2
        jump 132
      label 132
        $const134.1 = const(int, 0) :: Literal[int](0)
        $136compare_op.2 = exp != $const134.1 :: bool
        del $const134.1
        branch $136compare_op.2, 140, 174
247:         if exp & 1:
          label 140
            del $136compare_op.2
            $const142.1 = const(int, 1) :: Literal[int](1)
            $144binary_and.2 = exp & $const142.1 :: int64
            del $const142.1
            branch $144binary_and.2, 148, 156
248:             r *= a
              label 148
                del $144binary_and.2
                $152inplace_multiply.2 = inplace_binop(fn=<built-in function imul>, immutable_fn=<built-in function mul>, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined) :: float64
                r = $152inplace_multiply.2 :: float64
                del $152inplace_multiply.2
249:         exp >>= 1
            jump 156
          label 156
            del $144binary_and.2
            $const158.1 = const(int, 1) :: Literal[int](1)
            $160inplace_rshift.2 = inplace_binop(fn=<built-in function irshift>, immutable_fn=<built-in function rshift>, lhs=exp, rhs=$const158.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const158.1
            exp = $160inplace_rshift.2 :: int64
            del $160inplace_rshift.2
250:         a *= a
            $168inplace_multiply.5 = inplace_binop(fn=<built-in function imul>, immutable_fn=<built-in function mul>, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined) :: float64
            a.1 = $168inplace_multiply.5 :: float64
            del $168inplace_multiply.5
            jump 132
          label 174
251:
252:     return 1.0 / r if invert else r
        del exp
        del a.1
        del $136compare_op.2
        jump 176
      label 176
        branch invert, 180, 188
      label 180
        del invert
        $const180.0 = const(float, 1.0) :: float64
        $184binary_true_divide.2 = $const180.0 / r :: float64
        del r
        del $const180.0
        $186return_value.3 = cast(value=$184binary_true_divide.2) :: float64
        del $184binary_true_divide.2
        return $186return_value.3
      label 188
        del invert
        $190return_value.1 = cast(value=r) :: float64
        del r
        return $190return_value.1



Function name: hindex2xy
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/BRIO_2D_multidimarr.py
with signature: (int64, int64) -> UniTuple(int64 x 2)
66: @njit
67: def hindex2xy(hindex, p):
68:     '''
69:     hindex : Hilbert index of the point
70:          p : Iteration of the Hilbert curve
71:     '''
72:
73:     place = hindex & 3
      label 0
        hindex = arg(0, name=hindex) :: int64
        p = arg(1, name=p) :: int64
        $const4.1 = const(int, 3) :: Literal[int](3)
        $6binary_and.2 = hindex & $const4.1 :: int64
        del $const4.1
        place = $6binary_and.2 :: int64
        del $6binary_and.2
74:
75:     if place == 0:
        $const12.4 = const(int, 0) :: Literal[int](0)
        $14compare_op.5 = place == $const12.4 :: bool
        del $const12.4
        branch $14compare_op.5, 18, 28
76:         x = 0
          label 18
            del place
            del $14compare_op.5
            $const18.0 = const(int, 0) :: Literal[int](0)
            x = $const18.0 :: int64
            del $const18.0
77:         y = 0
            $const22.1 = const(int, 0) :: Literal[int](0)
            y = $const22.1 :: int64
            del $const22.1
            jump 80
78:     elif place == 1:
      label 28
        del $14compare_op.5
        $const30.1 = const(int, 1) :: Literal[int](1)
        $32compare_op.2 = place == $const30.1 :: bool
        del $const30.1
        branch $32compare_op.2, 36, 46
79:         x = 0
          label 36
            del place
            del $32compare_op.2
            $const36.0 = const(int, 0) :: Literal[int](0)
            x = $const36.0 :: int64
            del $const36.0
80:         y = 1
            $const40.1 = const(int, 1) :: Literal[int](1)
            y = $const40.1 :: int64
            del $const40.1
            jump 80
81:     elif place == 2:
      label 46
        del $32compare_op.2
        $const48.1 = const(int, 2) :: Literal[int](2)
        $50compare_op.2 = place == $const48.1 :: bool
        del $const48.1
        branch $50compare_op.2, 54, 64
82:         x = 1
          label 54
            del place
            del $50compare_op.2
            $const54.0 = const(int, 1) :: Literal[int](1)
            x = $const54.0 :: int64
            del $const54.0
83:         y = 1
            $const58.1 = const(int, 1) :: Literal[int](1)
            y = $const58.1 :: int64
            del $const58.1
            jump 80
84:     elif place == 3:
      label 64
        del $50compare_op.2
        $const66.1 = const(int, 3) :: Literal[int](3)
        $68compare_op.2 = place == $const66.1 :: bool
        del place
        del $const66.1
        branch $68compare_op.2, 72, 80
85:         x = 1
          label 72
            del $68compare_op.2
            $const72.0 = const(int, 1) :: Literal[int](1)
            x = $const72.0 :: int64
            del $const72.0
86:         y = 0
            $const76.1 = const(int, 0) :: Literal[int](0)
            y = $const76.1 :: int64
            del $const76.1
87:
88:     hindex = hindex >> 2
        jump 80
      label 80
        del $68compare_op.2
        $const82.1 = const(int, 2) :: Literal[int](2)
        $84binary_rshift.2 = hindex >> $const82.1 :: int64
        del hindex
        del $const82.1
        hindex.1 = $84binary_rshift.2 :: int64
        del $84binary_rshift.2
89:
90:     for i in range(1, p):
        jump 88
      label 88
        $90load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $const92.1 = const(int, 1) :: Literal[int](1)
        $96call_function.3 = call $90load_global.0($const92.1, p, func=$90load_global.0, args=[Var($const92.1, BRIO_2D_multidimarr.py:90), Var(p, BRIO_2D_multidimarr.py:73)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
        del p
        del $const92.1
        del $90load_global.0
        $98get_iter.4 = getiter(value=$96call_function.3) :: range_iter_int64
        del $96call_function.3
        $phi100.0 = $98get_iter.4 :: range_iter_int64
        del $98get_iter.4
        jump 100
      label 100
        $100for_iter.1 = iternext(value=$phi100.0) :: pair<int64, bool>
        $100for_iter.2 = pair_first(value=$100for_iter.1) :: int64
        $100for_iter.3 = pair_second(value=$100for_iter.1) :: bool
        del $100for_iter.1
        $phi102.1 = $100for_iter.2 :: int64
        del $100for_iter.2
        branch $100for_iter.3, 102, 232
      label 102
        del $100for_iter.3
        i = $phi102.1 :: int64
        del $phi102.1
91:         n = 2**i
            $const104.2 = const(int, 2) :: Literal[int](2)
            $108binary_power.4 = $const104.2 ** i :: int64
            del i
            del $const104.2
            n = $108binary_power.4 :: int64
            del $108binary_power.4
92:         place = hindex & 3
            $const114.6 = const(int, 3) :: Literal[int](3)
            $116binary_and.7 = hindex.1 & $const114.6 :: int64
            del $const114.6
            place = $116binary_and.7 :: int64
            del $116binary_and.7
93:
94:         if place == 0:
            $const122.9 = const(int, 0) :: Literal[int](0)
            $124compare_op.10 = place == $const122.9 :: bool
            del $const122.9
            branch $124compare_op.10, 128, 140
95:             x, y = y, x
              label 128
                del place
                del n
                del $124compare_op.10
                $x130.2 = x :: int64
                x = y :: int64
                y = $x130.2 :: int64
                del $x130.2
                jump 222
96:         elif place == 1:
          label 140
            del $124compare_op.10
            $const142.2 = const(int, 1) :: Literal[int](1)
            $144compare_op.3 = place == $const142.2 :: bool
            del $const142.2
            branch $144compare_op.3, 148, 158
97:             y = y + n
              label 148
                del place
                del $144compare_op.3
                $152binary_add.3 = y + n :: int64
                del n
                y = $152binary_add.3 :: int64
                del $152binary_add.3
                jump 222
98:         elif place == 2:
          label 158
            del $144compare_op.3
            $const160.2 = const(int, 2) :: Literal[int](2)
            $162compare_op.3 = place == $const160.2 :: bool
            del $const160.2
            branch $162compare_op.3, 166, 184
99:             x += n
              label 166
                del place
                del $162compare_op.3
                $170inplace_add.3 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=x, rhs=n, static_lhs=Undefined, static_rhs=Undefined) :: int64
                x = $170inplace_add.3 :: int64
                del $170inplace_add.3
100:             y += n
                $178inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=y, rhs=n, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del n
                y = $178inplace_add.6 :: int64
                del $178inplace_add.6
                jump 222
101:         elif place == 3:
          label 184
            del $162compare_op.3
            $const186.2 = const(int, 3) :: Literal[int](3)
            $188compare_op.3 = place == $const186.2 :: bool
            del place
            del $const186.2
            branch $188compare_op.3, 192, 222
102:             x, y = (2*n-1) - y, (n-1) - x
              label 192
                del $188compare_op.3
                $const192.1 = const(int, 2) :: Literal[int](2)
                $196binary_multiply.3 = $const192.1 * n :: int64
                del $const192.1
                $const198.4 = const(int, 1) :: Literal[int](1)
                $200binary_subtract.5 = $196binary_multiply.3 - $const198.4 :: int64
                del $const198.4
                del $196binary_multiply.3
                $204binary_subtract.7 = $200binary_subtract.5 - y :: int64
                del $200binary_subtract.5
                $const208.9 = const(int, 1) :: Literal[int](1)
                $210binary_subtract.10 = n - $const208.9 :: int64
                del n
                del $const208.9
                $214binary_subtract.12 = $210binary_subtract.10 - x :: int64
                del $210binary_subtract.10
                x = $204binary_subtract.7 :: int64
                del $204binary_subtract.7
                y = $214binary_subtract.12 :: int64
                del $214binary_subtract.12
103:
104:         hindex = hindex >> 2
            jump 222
          label 222
            del n
            del $188compare_op.3
            $const224.2 = const(int, 2) :: Literal[int](2)
            $226binary_rshift.3 = hindex.1 >> $const224.2 :: int64
            del $const224.2
            hindex.1 = $226binary_rshift.3 :: int64
            del $226binary_rshift.3
            jump 100
          label 232
105:
106:     x = int(x)
        del hindex.1
        del $phi102.1
        del $phi100.0
        del $100for_iter.3
        jump 234
      label 234
        $234load_global.0 = global(int: <class 'int'>) :: Function(<class 'int'>)
        $238call_function.2 = call $234load_global.0(x, func=$234load_global.0, args=[Var(x, BRIO_2D_multidimarr.py:76)], kws=(), vararg=None) :: (int64,) -> int64
        del x
        del $234load_global.0
        x.1 = $238call_function.2 :: int64
        del $238call_function.2
107:     y = int(y)
        $242load_global.3 = global(int: <class 'int'>) :: Function(<class 'int'>)
        $246call_function.5 = call $242load_global.3(y, func=$242load_global.3, args=[Var(y, BRIO_2D_multidimarr.py:77)], kws=(), vararg=None) :: (int64,) -> int64
        del y
        del $242load_global.3
        y.1 = $246call_function.5 :: int64
        del $246call_function.5
108:
109:     return x, y
        $254build_tuple.8 = build_tuple(items=[Var(x.1, BRIO_2D_multidimarr.py:106), Var(y.1, BRIO_2D_multidimarr.py:107)]) :: UniTuple(int64 x 2)
        del y.1
        del x.1
        $256return_value.9 = cast(value=$254build_tuple.8) :: UniTuple(int64 x 2)
        del $254build_tuple.8
        return $256return_value.9



Function name: int_power
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/numbers.py
with signature: (int64, int64) -> int64
223: def int_power(a, b):
224:     # Ensure computations are done with a large enough width
225:     r = tp(1)
      label 0
        a = arg(0, name=a) :: int64
        b = arg(1, name=b) :: int64
        $2load_deref.0 = freevar(tp: int64) :: class(int64)
        $const4.1 = const(int, 1) :: Literal[int](1)
        $6call_function.2 = call $2load_deref.0($const4.1, func=$2load_deref.0, args=[Var($const4.1, numbers.py:225)], kws=(), vararg=None) :: (Literal[int](1),) -> int64
        del $const4.1
        del $2load_deref.0
        r = $6call_function.2 :: int64
        del $6call_function.2
226:     a = tp(a)
        $10load_deref.3 = freevar(tp: int64) :: class(int64)
        $14call_function.5 = call $10load_deref.3(a, func=$10load_deref.3, args=[Var(a, numbers.py:225)], kws=(), vararg=None) :: (int64,) -> int64
        del a
        del $10load_deref.3
        a.1 = $14call_function.5 :: int64
        del $14call_function.5
227:     if b < 0:
        $const20.7 = const(int, 0) :: Literal[int](0)
        $22compare_op.8 = b < $const20.7 :: bool
        del $const20.7
        branch $22compare_op.8, 26, 98
228:         invert = True
          label 26
            del $22compare_op.8
            $const26.0 = const(bool, True) :: bool
            invert = $const26.0 :: bool
            del $const26.0
229:         exp = -b
            $32unary_negative.2 = unary(fn=<built-in function neg>, value=b) :: int64
            exp = $32unary_negative.2 :: int64
            del $32unary_negative.2
230:         if exp < 0:
            $const38.4 = const(int, 0) :: Literal[int](0)
            $40compare_op.5 = exp < $const38.4 :: bool
            del $const38.4
            branch $40compare_op.5, 44, 48
231:             raise OverflowError
              label 44
                del r
                del invert
                del exp
                del b
                del a.1
                del $40compare_op.5
                $44load_global.0 = global(OverflowError: <class 'OverflowError'>) :: OverflowError
                del $44load_global.0
                raise <class 'OverflowError'>
232:         if is_integer:
          label 48
            del $40compare_op.5
            $48load_deref.0 = freevar(is_integer: True) :: bool
            branch $48load_deref.0, 52, 106
233:             if a == 0:
              label 52
                del $48load_deref.0
                $const54.1 = const(int, 0) :: Literal[int](0)
                $56compare_op.2 = a.1 == $const54.1 :: bool
                del $const54.1
                branch $56compare_op.2, 60, 76
234:                 if zerodiv_return:
                  label 60
                    del r
                    del invert
                    del exp
                    del b
                    del a.1
                    del $56compare_op.2
                    $60load_deref.0 = freevar(zerodiv_return: False) :: bool
                    branch $60load_deref.0, 64, 68
235:                     return zerodiv_return
                      label 64
                        del $60load_deref.0
                        $64load_deref.0 = freevar(zerodiv_return: False) :: bool
                        $66return_value.1 = cast(value=$64load_deref.0) :: int64
                        del $64load_deref.0
                        return $66return_value.1
236:                 else:
237:                     raise ZeroDivisionError("0 cannot be raised to a negative power")
                      label 68
                        del $60load_deref.0
                        $68load_global.0 = global(ZeroDivisionError: <class 'ZeroDivisionError'>) :: ZeroDivisionError
                        $const70.1 = const(str, 0 cannot be raised to a negative power) :: Literal[str](0 cannot be raised to a negative power)
                        $72call_function.2 = call $68load_global.0($const70.1, func=$68load_global.0, args=[Var($const70.1, numbers.py:237)], kws=(), vararg=None) :: () -> ZeroDivisionError(...)
                        del $const70.1
                        del $72call_function.2
                        del $68load_global.0
                        raise <class 'ZeroDivisionError'>('0 cannot be raised to a negative power')
238:             if a != 1 and a != -1:
              label 76
                del $56compare_op.2
                $const78.1 = const(int, 1) :: Literal[int](1)
                $80compare_op.2 = a.1 != $const78.1 :: bool
                del $const78.1
                branch $80compare_op.2, 84, 106
              label 84
                del $80compare_op.2
                $const86.1 = const(int, -1) :: Literal[int](-1)
                $88compare_op.2 = a.1 != $const86.1 :: bool
                del $const86.1
                branch $88compare_op.2, 92, 106
239:                 return 0
                  label 92
                    del r
                    del invert
                    del exp
                    del b
                    del a.1
                    del $88compare_op.2
                    $const92.0 = const(int, 0) :: Literal[int](0)
                    $94return_value.1 = cast(value=$const92.0) :: int64
                    del $const92.0
                    return $94return_value.1
240:     else:
241:         invert = False
          label 98
            del $22compare_op.8
            $const98.0 = const(bool, False) :: bool
            invert = $const98.0 :: bool
            del $const98.0
242:         exp = b
            exp = b :: int64
243:     if exp > 0x10000:
        jump 106
      label 106
        del $88compare_op.2
        del $80compare_op.2
        del $48load_deref.0
        $const108.1 = const(int, 65536) :: Literal[int](65536)
        $110compare_op.2 = exp > $const108.1 :: bool
        del $const108.1
        branch $110compare_op.2, 114, 130
244:         # Optimization cutoff: fallback on the generic algorithm
245:         return math.pow(a, float(b))
          label 114
            del r
            del invert
            del exp
            del $110compare_op.2
            $114load_global.0 = global(math: <module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>) :: Module(<module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>)
            $116load_method.1 = getattr(value=$114load_global.0, attr=pow) :: Function(<built-in function pow>)
            del $114load_global.0
            $120load_global.3 = global(float: <class 'float'>) :: Function(<class 'float'>)
            $124call_function.5 = call $120load_global.3(b, func=$120load_global.3, args=[Var(b, numbers.py:225)], kws=(), vararg=None) :: (int64,) -> float64
            del b
            del $120load_global.3
            $126call_method.6 = call $116load_method.1(a.1, $124call_function.5, func=$116load_method.1, args=[Var(a.1, numbers.py:226), Var($124call_function.5, numbers.py:245)], kws=(), vararg=None) :: (float64, float64) -> float64
            del a.1
            del $124call_function.5
            del $116load_method.1
            $128return_value.7 = cast(value=$126call_method.6) :: int64
            del $126call_method.6
            return $128return_value.7
246:     while exp != 0:
      label 130
        del b
        del $110compare_op.2
        jump 132
      label 132
        $const134.1 = const(int, 0) :: Literal[int](0)
        $136compare_op.2 = exp != $const134.1 :: bool
        del $const134.1
        branch $136compare_op.2, 140, 174
247:         if exp & 1:
          label 140
            del $136compare_op.2
            $const142.1 = const(int, 1) :: Literal[int](1)
            $144binary_and.2 = exp & $const142.1 :: int64
            del $const142.1
            branch $144binary_and.2, 148, 156
248:             r *= a
              label 148
                del $144binary_and.2
                $152inplace_multiply.2 = inplace_binop(fn=<built-in function imul>, immutable_fn=<built-in function mul>, lhs=r, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
                r = $152inplace_multiply.2 :: int64
                del $152inplace_multiply.2
249:         exp >>= 1
            jump 156
          label 156
            del $144binary_and.2
            $const158.1 = const(int, 1) :: Literal[int](1)
            $160inplace_rshift.2 = inplace_binop(fn=<built-in function irshift>, immutable_fn=<built-in function rshift>, lhs=exp, rhs=$const158.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const158.1
            exp = $160inplace_rshift.2 :: int64
            del $160inplace_rshift.2
250:         a *= a
            $168inplace_multiply.5 = inplace_binop(fn=<built-in function imul>, immutable_fn=<built-in function mul>, lhs=a.1, rhs=a.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
            a.1 = $168inplace_multiply.5 :: int64
            del $168inplace_multiply.5
            jump 132
          label 174
251:
252:     return 1.0 / r if invert else r
        del exp
        del a.1
        del $136compare_op.2
        jump 176
      label 176
        branch invert, 180, 188
      label 180
        del invert
        $const180.0 = const(float, 1.0) :: float64
        $184binary_true_divide.2 = $const180.0 / r :: float64
        del r
        del $const180.0
        $186return_value.3 = cast(value=$184binary_true_divide.2) :: int64
        del $184binary_true_divide.2
        return $186return_value.3
      label 188
        del invert
        $190return_value.1 = cast(value=r) :: int64
        del r
        return $190return_value.1



Function name: make_hilbert_curve
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/BRIO_2D_multidimarr.py
with signature: (array(int64, 2d, C), int64) -> none
112: @njit
113: def make_hilbert_curve(hilbert_arr, p):
114:     a = int(2**p)
      label 0
        hilbert_arr = arg(0, name=hilbert_arr) :: array(int64, 2d, C)
        p = arg(1, name=p) :: int64
        $2load_global.0 = global(int: <class 'int'>) :: Function(<class 'int'>)
        $const4.1 = const(int, 2) :: Literal[int](2)
        $8binary_power.3 = $const4.1 ** p :: int64
        del $const4.1
        $10call_function.4 = call $2load_global.0($8binary_power.3, func=$2load_global.0, args=[Var($8binary_power.3, BRIO_2D_multidimarr.py:114)], kws=(), vararg=None) :: (int64,) -> int64
        del $8binary_power.3
        del $2load_global.0
        a = $10call_function.4 :: int64
        del a
        del $10call_function.4
115:     for i in range(2**(2*p)):
        jump 14
      label 14
        $16load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $const18.1 = const(int, 2) :: Literal[int](2)
        $const20.2 = const(int, 2) :: Literal[int](2)
        $24binary_multiply.4 = $const20.2 * p :: int64
        del $const20.2
        $26binary_power.5 = $const18.1 ** $24binary_multiply.4 :: int64
        del $const18.1
        del $24binary_multiply.4
        $28call_function.6 = call $16load_global.0($26binary_power.5, func=$16load_global.0, args=[Var($26binary_power.5, BRIO_2D_multidimarr.py:115)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del $26binary_power.5
        del $16load_global.0
        $30get_iter.7 = getiter(value=$28call_function.6) :: range_iter_int64
        del $28call_function.6
        $phi32.0 = $30get_iter.7 :: range_iter_int64
        del $30get_iter.7
        jump 32
      label 32
        $32for_iter.1 = iternext(value=$phi32.0) :: pair<int64, bool>
        $32for_iter.2 = pair_first(value=$32for_iter.1) :: int64
        $32for_iter.3 = pair_second(value=$32for_iter.1) :: bool
        del $32for_iter.1
        $phi34.1 = $32for_iter.2 :: int64
        del $32for_iter.2
        branch $32for_iter.3, 34, 64
      label 34
        del $32for_iter.3
        i = $phi34.1 :: int64
        del $phi34.1
116:         x, y = hindex2xy(i, p)
            $36load_global.2 = global(hindex2xy: CPUDispatcher(<function hindex2xy at 0x7f51e5d76440>)) :: type(CPUDispatcher(<function hindex2xy at 0x7f51e5d76440>))
            $42call_function.5 = call $36load_global.2(i, p, func=$36load_global.2, args=[Var(i, BRIO_2D_multidimarr.py:115), Var(p, BRIO_2D_multidimarr.py:114)], kws=(), vararg=None) :: (int64, int64) -> UniTuple(int64 x 2)
            del $36load_global.2
            $44unpack_sequence.8 = exhaust_iter(value=$42call_function.5, count=2) :: UniTuple(int64 x 2)
            del $42call_function.5
            $44unpack_sequence.6 = static_getitem(value=$44unpack_sequence.8, index=0, index_var=None) :: int64
            $44unpack_sequence.7 = static_getitem(value=$44unpack_sequence.8, index=1, index_var=None) :: int64
            del $44unpack_sequence.8
            x = $44unpack_sequence.6 :: int64
            del $44unpack_sequence.6
            y = $44unpack_sequence.7 :: int64
            del $44unpack_sequence.7
117:         hilbert_arr[x, y] = i
            $58build_tuple.13 = build_tuple(items=[Var(x, BRIO_2D_multidimarr.py:116), Var(y, BRIO_2D_multidimarr.py:116)]) :: UniTuple(int64 x 2)
            del y
            del x
            hilbert_arr[$58build_tuple.13] = i :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
            del i
            del $58build_tuple.13
            jump 32
          label 64
118:
119:     return
        del p
        del hilbert_arr
        del $phi34.1
        del $phi32.0
        del $32for_iter.3
        jump 66
      label 66
        $const66.0 = const(NoneType, None) :: none
        $68return_value.1 = cast(value=$const66.0) :: none
        del $const66.0
        return $68return_value.1



Function name: sort_along_hilbert_curve
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/BRIO_2D_multidimarr.py
with signature: (array(float64, 2d, C), array(float64, 2d, C), array(int64, 2d, C), array(int64, 1d, C), int64, int64) -> none
122: @njit
123: def sort_along_hilbert_curve(
124:     org_points,
125:     temp_points,
126:     hilbert_arr,
127:     new_indices,
128:     org_points_end,
129:     p
130: ):
131:     '''
132:      org_points : 2N x 1; points to be sorted
133:          points : 2N x 1; array with dimensions same as that of points
134:                   used for manipulation
135:       hilbert_x : 2^8 x 1 array
136:       hilbert_y : 2^8 x 1 array
137:     new_indices : N x 1 array
138:     '''
139:
140:     len_points = org_points_end
      label 0
        org_points = arg(0, name=org_points) :: array(float64, 2d, C)
        temp_points = arg(1, name=temp_points) :: array(float64, 2d, C)
        hilbert_arr = arg(2, name=hilbert_arr) :: array(int64, 2d, C)
        new_indices = arg(3, name=new_indices) :: array(int64, 1d, C)
        org_points_end = arg(4, name=org_points_end) :: int64
        p = arg(5, name=p) :: int64
        len_points = org_points_end :: int64
        del org_points_end
141:
142:     min_x = org_points[0, 0]
        $const_0 = const(int, 0) :: Literal[int](0)
        $const_0.1 = const(int, 0) :: Literal[int](0)
        $const8.2 = build_tuple(items=[Var($const_0, BRIO_2D_multidimarr.py:142), Var($const_0.1, BRIO_2D_multidimarr.py:142)]) :: UniTuple(Literal[int](0) x 2)
        del $const_0.1
        del $const_0
        $10binary_subscr.3 = static_getitem(value=org_points, index=(0, 0), index_var=$const8.2) :: float64
        del $const8.2
        min_x = $10binary_subscr.3 :: float64
        del $10binary_subscr.3
143:     min_y = org_points[0, 1]
        $const_0.2 = const(int, 0) :: Literal[int](0)
        $const_1 = const(int, 1) :: Literal[int](1)
        $const16.5 = build_tuple(items=[Var($const_0.2, BRIO_2D_multidimarr.py:143), Var($const_1, BRIO_2D_multidimarr.py:143)]) :: Tuple(Literal[int](0), Literal[int](1))
        del $const_1
        del $const_0.2
        $18binary_subscr.6 = static_getitem(value=org_points, index=(0, 1), index_var=$const16.5) :: float64
        del $const16.5
        min_y = $18binary_subscr.6 :: float64
        del $18binary_subscr.6
144:     max_x = org_points[0, 0]
        $const_0.3 = const(int, 0) :: Literal[int](0)
        $const_0.4 = const(int, 0) :: Literal[int](0)
        $const24.8 = build_tuple(items=[Var($const_0.3, BRIO_2D_multidimarr.py:144), Var($const_0.4, BRIO_2D_multidimarr.py:144)]) :: UniTuple(Literal[int](0) x 2)
        del $const_0.4
        del $const_0.3
        $26binary_subscr.9 = static_getitem(value=org_points, index=(0, 0), index_var=$const24.8) :: float64
        del $const24.8
        max_x = $26binary_subscr.9 :: float64
        del $26binary_subscr.9
145:     max_y = org_points[0, 1]
        $const_0.5 = const(int, 0) :: Literal[int](0)
        $const_1.1 = const(int, 1) :: Literal[int](1)
        $const32.11 = build_tuple(items=[Var($const_0.5, BRIO_2D_multidimarr.py:145), Var($const_1.1, BRIO_2D_multidimarr.py:145)]) :: Tuple(Literal[int](0), Literal[int](1))
        del $const_1.1
        del $const_0.5
        $34binary_subscr.12 = static_getitem(value=org_points, index=(0, 1), index_var=$const32.11) :: float64
        del $const32.11
        max_y = $34binary_subscr.12 :: float64
        del $34binary_subscr.12
146:
147:     for i in range(len_points):
        jump 38
      label 38
        $40load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $44call_function.2 = call $40load_global.0(len_points, func=$40load_global.0, args=[Var(len_points, BRIO_2D_multidimarr.py:140)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del $40load_global.0
        $46get_iter.3 = getiter(value=$44call_function.2) :: range_iter_int64
        del $44call_function.2
        $phi48.0 = $46get_iter.3 :: range_iter_int64
        del $46get_iter.3
        jump 48
      label 48
        $48for_iter.1 = iternext(value=$phi48.0) :: pair<int64, bool>
        $48for_iter.2 = pair_first(value=$48for_iter.1) :: int64
        $48for_iter.3 = pair_second(value=$48for_iter.1) :: bool
        del $48for_iter.1
        $phi50.1 = $48for_iter.2 :: int64
        del $48for_iter.2
        branch $48for_iter.3, 50, 130
      label 50
        del $48for_iter.3
        i = $phi50.1 :: int64
        del $phi50.1
      label 403
        del y
        del $120compare_op.3
        jump 48
148:         x = org_points[i, 0]
            $const56.4 = const(int, 0) :: Literal[int](0)
            $58build_tuple.5 = build_tuple(items=[Var(i, BRIO_2D_multidimarr.py:147), Var($const56.4, BRIO_2D_multidimarr.py:148)]) :: Tuple(int64, Literal[int](0))
            del $const56.4
            $60binary_subscr.6 = getitem(value=org_points, index=$58build_tuple.5) :: float64
            del $58build_tuple.5
            x = $60binary_subscr.6 :: float64
            del $60binary_subscr.6
149:         y = org_points[i, 1]
            $const68.9 = const(int, 1) :: Literal[int](1)
            $70build_tuple.10 = build_tuple(items=[Var(i, BRIO_2D_multidimarr.py:147), Var($const68.9, BRIO_2D_multidimarr.py:149)]) :: Tuple(int64, Literal[int](1))
            del i
            del $const68.9
            $72binary_subscr.11 = getitem(value=org_points, index=$70build_tuple.10) :: float64
            del $70build_tuple.10
            y = $72binary_subscr.11 :: float64
            del $72binary_subscr.11
150:         if x < min_x:
            $80compare_op.14 = x < min_x :: bool
            branch $80compare_op.14, 84, 90
151:             min_x = x
              label 84
                del $80compare_op.14
                min_x = x :: float64
                del x
                jump 102
152:         elif max_x < x:
          label 90
            del $80compare_op.14
            $94compare_op.3 = max_x < x :: bool
            branch $94compare_op.3, 98, 102
153:             max_x = x
              label 98
                del $94compare_op.3
                max_x = x :: float64
                del x
154:         if y < min_y:
            jump 102
          label 102
            del x
            del $94compare_op.3
            $106compare_op.3 = y < min_y :: bool
            branch $106compare_op.3, 110, 116
155:             min_y = y
              label 110
                del $106compare_op.3
                min_y = y :: float64
                del y
                jump 403
156:         elif max_y < y:
          label 116
            del $106compare_op.3
            $120compare_op.3 = max_y < y :: bool
            branch $120compare_op.3, 124, 403
157:             max_y = y
              label 124
                del $120compare_op.3
                max_y = y :: float64
                del y
                jump 403
              label 130
158:
159:     max_x -= min_x
        del $phi50.1
        del $phi48.0
        del $48for_iter.3
        jump 132
      label 132
        $136inplace_subtract.2 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=max_x, rhs=min_x, static_lhs=Undefined, static_rhs=Undefined) :: float64
        del max_x
        max_x.1 = $136inplace_subtract.2 :: float64
        del $136inplace_subtract.2
160:     max_y -= min_y
        $144inplace_subtract.5 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=max_y, rhs=min_y, static_lhs=Undefined, static_rhs=Undefined) :: float64
        del max_y
        max_y.1 = $144inplace_subtract.5 :: float64
        del $144inplace_subtract.5
161:
162:     if max_y > max_x:
        $152compare_op.8 = max_y.1 > max_x.1 :: bool
        branch $152compare_op.8, 156, 162
163:         max_xy = max_y
          label 156
            del max_x.1
            del $152compare_op.8
            max_xy = max_y.1 :: float64
            del max_y.1
            jump 166
164:     else:
165:         max_xy = max_x
          label 162
            del max_y.1
            del $152compare_op.8
            max_xy = max_x.1 :: float64
            del max_x.1
166:
167:     if max_xy == 0:
        jump 166
      label 166
        $const168.1 = const(int, 0) :: Literal[int](0)
        $170compare_op.2 = max_xy == $const168.1 :: bool
        del $const168.1
        branch $170compare_op.2, 174, 178
168:         # occurs when there is only one point in the round
169:         max_xy = 1
          label 174
            del $170compare_op.2
            $const174.0 = const(int, 1) :: Literal[int](1)
            max_xy = $const174.0 :: float64
            del $const174.0
170:
171:     a = 2**p
        jump 178
      label 178
        del $170compare_op.2
        $const178.0 = const(int, 2) :: Literal[int](2)
        $182binary_power.2 = $const178.0 ** p :: int64
        del p
        del $const178.0
        a = $182binary_power.2 :: int64
        del $182binary_power.2
172:
173:     for i in range(len_points):
        jump 186
      label 186
        $188load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $192call_function.2 = call $188load_global.0(len_points, func=$188load_global.0, args=[Var(len_points, BRIO_2D_multidimarr.py:140)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del $188load_global.0
        $194get_iter.3 = getiter(value=$192call_function.2) :: range_iter_int64
        del $192call_function.2
        $phi196.0 = $194get_iter.3 :: range_iter_int64
        del $194get_iter.3
        jump 196
      label 196
        $196for_iter.1 = iternext(value=$phi196.0) :: pair<int64, bool>
        $196for_iter.2 = pair_first(value=$196for_iter.1) :: int64
        $196for_iter.3 = pair_second(value=$196for_iter.1) :: bool
        del $196for_iter.1
        $phi198.1 = $196for_iter.2 :: int64
        del $196for_iter.2
        branch $196for_iter.3, 198, 306
      label 198
        del $196for_iter.3
        i = $phi198.1 :: int64
        del $phi198.1
174:         x = org_points[i, 0]
            $const204.4 = const(int, 0) :: Literal[int](0)
            $206build_tuple.5 = build_tuple(items=[Var(i, BRIO_2D_multidimarr.py:147), Var($const204.4, BRIO_2D_multidimarr.py:174)]) :: Tuple(int64, Literal[int](0))
            del $const204.4
            $208binary_subscr.6 = getitem(value=org_points, index=$206build_tuple.5) :: float64
            del $206build_tuple.5
            x = $208binary_subscr.6 :: float64
            del $208binary_subscr.6
175:         y = org_points[i, 1]
            $const216.9 = const(int, 1) :: Literal[int](1)
            $218build_tuple.10 = build_tuple(items=[Var(i, BRIO_2D_multidimarr.py:147), Var($const216.9, BRIO_2D_multidimarr.py:175)]) :: Tuple(int64, Literal[int](1))
            del $const216.9
            $220binary_subscr.11 = getitem(value=org_points, index=$218build_tuple.10) :: float64
            del $218build_tuple.10
            y = $220binary_subscr.11 :: float64
            del $220binary_subscr.11
176:
177:         x = np.round(((x-min_x)/max_xy)*(a-1), 0)
            $224load_global.12 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
            $226load_method.13 = getattr(value=$224load_global.12, attr=round) :: Function(<function round_ at 0x7f51e4bc4050>)
            del $224load_global.12
            $232binary_subtract.16 = x - min_x :: float64
            $236binary_true_divide.18 = $232binary_subtract.16 / max_xy :: float64
            del $232binary_subtract.16
            $const240.20 = const(int, 1) :: Literal[int](1)
            $242binary_subtract.21 = a - $const240.20 :: int64
            del $const240.20
            $244binary_multiply.22 = $236binary_true_divide.18 * $242binary_subtract.21 :: float64
            del $242binary_subtract.21
            del $236binary_true_divide.18
            $const246.23 = const(int, 0) :: Literal[int](0)
            $248call_method.24 = call $226load_method.13($244binary_multiply.22, $const246.23, func=$226load_method.13, args=[Var($244binary_multiply.22, BRIO_2D_multidimarr.py:177), Var($const246.23, BRIO_2D_multidimarr.py:177)], kws=(), vararg=None) :: (float64, Literal[int](0)) -> float64
            del $const246.23
            del $244binary_multiply.22
            del $226load_method.13
            x = $248call_method.24 :: float64
            del $248call_method.24
178:         y = np.round(((y-min_y)/max_xy)*(a-1), 0)
            $252load_global.25 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
            $254load_method.26 = getattr(value=$252load_global.25, attr=round) :: Function(<function round_ at 0x7f51e4bc4050>)
            del $252load_global.25
            $260binary_subtract.29 = y - min_y :: float64
            $264binary_true_divide.31 = $260binary_subtract.29 / max_xy :: float64
            del $260binary_subtract.29
            $const268.33 = const(int, 1) :: Literal[int](1)
            $270binary_subtract.34 = a - $const268.33 :: int64
            del $const268.33
            $272binary_multiply.35 = $264binary_true_divide.31 * $270binary_subtract.34 :: float64
            del $270binary_subtract.34
            del $264binary_true_divide.31
            $const274.36 = const(int, 0) :: Literal[int](0)
            $276call_method.37 = call $254load_method.26($272binary_multiply.35, $const274.36, func=$254load_method.26, args=[Var($272binary_multiply.35, BRIO_2D_multidimarr.py:178), Var($const274.36, BRIO_2D_multidimarr.py:178)], kws=(), vararg=None) :: (float64, Literal[int](0)) -> float64
            del $const274.36
            del $272binary_multiply.35
            del $254load_method.26
            y = $276call_method.37 :: float64
            del $276call_method.37
179:
180:         new_indices[i] = hilbert_arr[int(x), int(y)]
            $282load_global.39 = global(int: <class 'int'>) :: Function(<class 'int'>)
            $286call_function.41 = call $282load_global.39(x, func=$282load_global.39, args=[Var(x, BRIO_2D_multidimarr.py:148)], kws=(), vararg=None) :: (float64,) -> int64
            del x
            del $282load_global.39
            $288load_global.42 = global(int: <class 'int'>) :: Function(<class 'int'>)
            $292call_function.44 = call $288load_global.42(y, func=$288load_global.42, args=[Var(y, BRIO_2D_multidimarr.py:149)], kws=(), vararg=None) :: (float64,) -> int64
            del y
            del $288load_global.42
            $294build_tuple.45 = build_tuple(items=[Var($286call_function.41, BRIO_2D_multidimarr.py:180), Var($292call_function.44, BRIO_2D_multidimarr.py:180)]) :: UniTuple(int64 x 2)
            del $292call_function.44
            del $286call_function.41
            $296binary_subscr.46 = getitem(value=hilbert_arr, index=$294build_tuple.45) :: int64
            del $294build_tuple.45
            new_indices[i] = $296binary_subscr.46 :: (array(int64, 1d, C), int64, int64) -> none
            del i
            del $296binary_subscr.46
            jump 196
          label 306
181:
182:     new_indices[0:len_points] = np.argsort(new_indices[0:len_points])
        del min_y
        del min_x
        del max_xy
        del hilbert_arr
        del a
        del $phi198.1
        del $phi196.0
        del $196for_iter.3
        jump 308
      label 308
        $308load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $310load_method.1 = getattr(value=$308load_global.0, attr=argsort) :: Function(<function argsort at 0x7f51e4bb5e60>)
        del $308load_global.0
        $const314.3 = const(int, 0) :: Literal[int](0)
        $318build_slice.5 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $318build_slice.6 = call $318build_slice.5($const314.3, len_points, func=$318build_slice.5, args=(Var($const314.3, BRIO_2D_multidimarr.py:182), Var(len_points, BRIO_2D_multidimarr.py:140)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const314.3
        del $318build_slice.5
        $320binary_subscr.7 = getitem(value=new_indices, index=$318build_slice.6) :: array(int64, 1d, C)
        del $318build_slice.6
        $322call_method.8 = call $310load_method.1($320binary_subscr.7, func=$310load_method.1, args=[Var($320binary_subscr.7, BRIO_2D_multidimarr.py:182)], kws=(), vararg=None) :: (array(int64, 1d, C), Literal[str](quicksort)) -> array(int64, 1d, C)
        del $320binary_subscr.7
        del $310load_method.1
        $const326.10 = const(int, 0) :: Literal[int](0)
        $330build_slice.12 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $330build_slice.13 = call $330build_slice.12($const326.10, len_points, func=$330build_slice.12, args=(Var($const326.10, BRIO_2D_multidimarr.py:182), Var(len_points, BRIO_2D_multidimarr.py:140)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const326.10
        del $330build_slice.12
        new_indices[$330build_slice.13] = $322call_method.8 :: (array(int64, 1d, C), slice<a:b>, array(int64, 1d, C)) -> none
        del $330build_slice.13
        del $322call_method.8
183:
184:     for i in range(len_points):
        jump 334
      label 334
        $336load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $340call_function.2 = call $336load_global.0(len_points, func=$336load_global.0, args=[Var(len_points, BRIO_2D_multidimarr.py:140)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del len_points
        del $336load_global.0
        $342get_iter.3 = getiter(value=$340call_function.2) :: range_iter_int64
        del $340call_function.2
        $phi344.0 = $342get_iter.3 :: range_iter_int64
        del $342get_iter.3
        jump 344
      label 344
        $344for_iter.1 = iternext(value=$phi344.0) :: pair<int64, bool>
        $344for_iter.2 = pair_first(value=$344for_iter.1) :: int64
        $344for_iter.3 = pair_second(value=$344for_iter.1) :: bool
        del $344for_iter.1
        $phi346.1 = $344for_iter.2 :: int64
        del $344for_iter.2
        branch $344for_iter.3, 346, 400
      label 346
        del $344for_iter.3
        i = $phi346.1 :: int64
        del $phi346.1
185:         idx = new_indices[i]
            $352binary_subscr.4 = getitem(value=new_indices, index=i) :: int64
            idx = $352binary_subscr.4 :: int64
            del $352binary_subscr.4
186:         temp_points[i, 0] = org_points[idx, 0]
            $const360.7 = const(int, 0) :: Literal[int](0)
            $362build_tuple.8 = build_tuple(items=[Var(idx, BRIO_2D_multidimarr.py:185), Var($const360.7, BRIO_2D_multidimarr.py:186)]) :: Tuple(int64, Literal[int](0))
            del $const360.7
            $364binary_subscr.9 = getitem(value=org_points, index=$362build_tuple.8) :: float64
            del $362build_tuple.8
            $const370.12 = const(int, 0) :: Literal[int](0)
            $372build_tuple.13 = build_tuple(items=[Var(i, BRIO_2D_multidimarr.py:147), Var($const370.12, BRIO_2D_multidimarr.py:186)]) :: Tuple(int64, Literal[int](0))
            del $const370.12
            temp_points[$372build_tuple.13] = $364binary_subscr.9 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
            del $372build_tuple.13
            del $364binary_subscr.9
187:         temp_points[i, 1] = org_points[idx, 1]
            $const380.16 = const(int, 1) :: Literal[int](1)
            $382build_tuple.17 = build_tuple(items=[Var(idx, BRIO_2D_multidimarr.py:185), Var($const380.16, BRIO_2D_multidimarr.py:187)]) :: Tuple(int64, Literal[int](1))
            del idx
            del $const380.16
            $384binary_subscr.18 = getitem(value=org_points, index=$382build_tuple.17) :: float64
            del $382build_tuple.17
            $const390.21 = const(int, 1) :: Literal[int](1)
            $392build_tuple.22 = build_tuple(items=[Var(i, BRIO_2D_multidimarr.py:147), Var($const390.21, BRIO_2D_multidimarr.py:187)]) :: Tuple(int64, Literal[int](1))
            del i
            del $const390.21
            temp_points[$392build_tuple.22] = $384binary_subscr.18 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
            del $392build_tuple.22
            del $384binary_subscr.18
            jump 344
          label 400
188:
189:     return
        del temp_points
        del org_points
        del new_indices
        del $phi346.1
        del $phi344.0
        del $344for_iter.3
        jump 402
      label 402
        $const402.0 = const(NoneType, None) :: none
        $404return_value.1 = cast(value=$const402.0) :: none
        del $const402.0
        return $404return_value.1



Function name: impl
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arrayobj.py
with signature: (int64, omitted(default=None), omitted(default=None), omitted(default=None)) -> array(int64, 1d, C)
3870: def impl(start, stop=None, step=None, dtype=None):
3871:     # Allow for improved performance if given literal arguments.
3872:     lit_start = start_value if start_value is not None else start
      label 0
        start = arg(0, name=start) :: int64
        stop = arg(1, name=stop) :: none
        step = arg(2, name=step) :: none
        dtype = arg(3, name=dtype) :: none
        del dtype
        $2load_deref.0 = freevar(start_value: None) :: none
        del $2load_deref.0
        $const4.1 = const(NoneType, None) :: none
        del $const4.1
        $6compare_op.2 = const(int, 0) :: Literal[int](0)
        del $6compare_op.2
        jump 14
      label 14
        $phi16.0 = start :: int64
        del start
        jump 16
      label 16
        lit_start = $phi16.0 :: int64
        del $phi16.0
3873:     lit_stop = stop_value if stop_value is not None else stop
        $18load_deref.1 = freevar(stop_value: None) :: none
        del $18load_deref.1
        $const20.2 = const(NoneType, None) :: none
        del $const20.2
        $22compare_op.3 = const(int, 0) :: Literal[int](0)
        del $22compare_op.3
        jump 30
      label 30
        $phi32.0 = stop :: none
        del stop
        jump 32
      label 32
        lit_stop = $phi32.0 :: none
        del $phi32.0
3874:     lit_step = step_value if step_value is not None else step
        $34load_deref.1 = freevar(step_value: None) :: none
        del $34load_deref.1
        $const36.2 = const(NoneType, None) :: none
        del $const36.2
        $38compare_op.3 = const(int, 0) :: Literal[int](0)
        del $38compare_op.3
        jump 46
      label 46
        $phi48.0 = step :: none
        del step
        jump 48
      label 48
        lit_step = $phi48.0 :: none
        del $phi48.0
3875:
3876:     _step = lit_step if lit_step is not None else 1
        $const52.2 = const(NoneType, None) :: none
        $54compare_op.3 = lit_step is not $const52.2 :: bool
        del $const52.2
        branch $54compare_op.3, 58, 62
      label 58
        del $54compare_op.3
        $phi64.0 = lit_step :: OptionalType(int64) i.e. the type 'int64 or None'
        del lit_step
        jump 64
      label 62
        del lit_step
        del $54compare_op.3
        $const62.0 = const(int, 1) :: Literal[int](1)
        $phi64.0 = $const62.0 :: OptionalType(int64) i.e. the type 'int64 or None'
        del $const62.0
        jump 64
      label 64
        _step = $phi64.0 :: OptionalType(int64) i.e. the type 'int64 or None'
        del $phi64.0
3877:     if lit_stop is None:
        $const68.2 = const(NoneType, None) :: none
        $70compare_op.3 = lit_stop is $const68.2 :: bool
        del $const68.2
        branch $70compare_op.3, 74, 86
3878:         _start, _stop = 0, lit_start
          label 74
            del lit_stop
            del $70compare_op.3
            $const74.0 = const(int, 0) :: Literal[int](0)
            _start = $const74.0 :: int64
            del $const74.0
            _stop = lit_start :: OptionalType(int64) i.e. the type 'int64 or None'
            del lit_start
            jump 96
3879:     else:
3880:         _start, _stop = lit_start, lit_stop
          label 86
            del $70compare_op.3
            _start = lit_start :: int64
            del lit_start
            _stop = lit_stop :: OptionalType(int64) i.e. the type 'int64 or None'
            del lit_stop
3881:
3882:     if _step == 0:
        jump 96
      label 96
        $const98.1 = const(int, 0) :: Literal[int](0)
        $100compare_op.2 = _step == $const98.1 :: bool
        del $const98.1
        branch $100compare_op.2, 104, 112
3883:         raise ValueError("Maximum allowed size exceeded")
          label 104
            del _stop
            del _step
            del _start
            del $100compare_op.2
            $104load_global.0 = global(ValueError: <class 'ValueError'>) :: ValueError
            $const106.1 = const(str, Maximum allowed size exceeded) :: Literal[str](Maximum allowed size exceeded)
            $108call_function.2 = call $104load_global.0($const106.1, func=$104load_global.0, args=[Var($const106.1, arrayobj.py:3883)], kws=(), vararg=None) :: () -> ValueError(...)
            del $const106.1
            del $108call_function.2
            del $104load_global.0
            raise <class 'ValueError'>('Maximum allowed size exceeded')
3884:
3885:     nitems_c = (_stop - _start) / _step
      label 112
        del $100compare_op.2
        $116binary_subtract.2 = _stop - _start :: int64
        del _stop
        $120binary_true_divide.4 = $116binary_subtract.2 / _step :: float64
        del $116binary_subtract.2
        nitems_c = $120binary_true_divide.4 :: float64
        del $120binary_true_divide.4
3886:     nitems_r = int(math.ceil(nitems_c.real))
        $124load_global.5 = global(int: <class 'int'>) :: Function(<class 'int'>)
        $126load_global.6 = global(math: <module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>) :: Module(<module 'math' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>)
        $128load_method.7 = getattr(value=$126load_global.6, attr=ceil) :: Function(<built-in function ceil>)
        del $126load_global.6
        $132load_attr.9 = getattr(value=nitems_c, attr=real) :: float64
        del nitems_c
        $134call_method.10 = call $128load_method.7($132load_attr.9, func=$128load_method.7, args=[Var($132load_attr.9, arrayobj.py:3886)], kws=(), vararg=None) :: (float64,) -> int64
        del $132load_attr.9
        del $128load_method.7
        $136call_function.11 = call $124load_global.5($134call_method.10, func=$124load_global.5, args=[Var($134call_method.10, arrayobj.py:3886)], kws=(), vararg=None) :: (int64,) -> int64
        del $134call_method.10
        del $124load_global.5
        nitems_r = $136call_function.11 :: int64
        del $136call_function.11
3887:
3888:     # Binary operator needed for compiler branch pruning.
3889:     if use_complex is True:
        $140load_deref.12 = freevar(use_complex: False) :: bool
        del $140load_deref.12
        $const142.13 = const(bool, True) :: bool
        del $const142.13
        $144compare_op.14 = const(int, 0) :: Literal[int](0)
        del $144compare_op.14
        jump 182
3890:         nitems_i = int(math.ceil(nitems_c.imag))
3891:         nitems = max(min(nitems_i, nitems_r), 0)
3892:     else:
3893:         nitems = max(nitems_r, 0)
          label 182
            $182load_global.0 = global(max: <built-in function max>) :: Function(<built-in function max>)
            $const186.2 = const(int, 0) :: Literal[int](0)
            $188call_function.3 = call $182load_global.0(nitems_r, $const186.2, func=$182load_global.0, args=[Var(nitems_r, arrayobj.py:3886), Var($const186.2, arrayobj.py:3893)], kws=(), vararg=None) :: (int64, Literal[int](0)) -> int64
            del nitems_r
            del $const186.2
            del $182load_global.0
            nitems = $188call_function.3 :: int64
            del $188call_function.3
3894:     arr = np.empty(nitems, true_dtype)
        jump 192
      label 192
        $192load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $194load_method.1 = getattr(value=$192load_global.0, attr=empty) :: Function(<built-in function empty>)
        del $192load_global.0
        $198load_deref.3 = freevar(true_dtype: int64) :: class(int64)
        $200call_method.4 = call $194load_method.1(nitems, $198load_deref.3, func=$194load_method.1, args=[Var(nitems, arrayobj.py:3891), Var($198load_deref.3, arrayobj.py:3894)], kws=(), vararg=None) :: (int64, class(int64)) -> array(int64, 1d, C)
        del $198load_deref.3
        del $194load_method.1
        arr = $200call_method.4 :: array(int64, 1d, C)
        del $200call_method.4
3895:     val = _start
        val = _start :: int64
        del _start
3896:     for i in range(nitems):
        jump 208
      label 208
        $210load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $214call_function.2 = call $210load_global.0(nitems, func=$210load_global.0, args=[Var(nitems, arrayobj.py:3891)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del nitems
        del $210load_global.0
        $216get_iter.3 = getiter(value=$214call_function.2) :: range_iter_int64
        del $214call_function.2
        $phi218.0 = $216get_iter.3 :: range_iter_int64
        del $216get_iter.3
        jump 218
      label 218
        $218for_iter.1 = iternext(value=$phi218.0) :: pair<int64, bool>
        $218for_iter.2 = pair_first(value=$218for_iter.1) :: int64
        $218for_iter.3 = pair_second(value=$218for_iter.1) :: bool
        del $218for_iter.1
        $phi220.1 = $218for_iter.2 :: int64
        del $218for_iter.2
        branch $218for_iter.3, 220, 240
      label 220
        del $218for_iter.3
        i = $phi220.1 :: int64
        del $phi220.1
3897:         arr[i] = val
            arr[i] = val :: (array(int64, 1d, C), int64, int64) -> none
            del i
3898:         val += _step
            $234inplace_add.7 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=val, rhs=_step, static_lhs=Undefined, static_rhs=Undefined) :: int64
            val = $234inplace_add.7 :: int64
            del $234inplace_add.7
            jump 218
          label 240
3899:     return arr
        del val
        del _step
        del $phi220.1
        del $phi218.0
        del $218for_iter.3
        jump 242
      label 242
        $244return_value.1 = cast(value=arr) :: array(int64, 1d, C)
        del arr
        return $244return_value.1



Function name: make_res
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/quicksort.py
with signature: (array(int64, 1d, C),) -> array(int64, 1d, C)
44: @wrap
45: def make_res(A):
46:     return np.arange(A.size)
      label 0
        A = arg(0, name=A) :: array(int64, 1d, C)
        $2load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $4load_method.1 = getattr(value=$2load_global.0, attr=arange) :: Function(<built-in function arange>)
        del $2load_global.0
        $8load_attr.3 = getattr(value=A, attr=size) :: int64
        del A
        $10call_method.4 = call $4load_method.1($8load_attr.3, func=$4load_method.1, args=[Var($8load_attr.3, quicksort.py:46)], kws=(), vararg=None) :: (int64, omitted(default=None), omitted(default=None), omitted(default=None)) -> array(int64, 1d, C)
        del $8load_attr.3
        del $4load_method.1
        $12return_value.5 = cast(value=$10call_method.4) :: array(int64, 1d, C)
        del $10call_method.4
        return $12return_value.5



Function name: GET
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/quicksort.py
with signature: (array(int64, 1d, C), int64) -> int64
48: @wrap
49: def GET(A, idx_or_val):
50:     return A[idx_or_val]
      label 0
        A = arg(0, name=A) :: array(int64, 1d, C)
        idx_or_val = arg(1, name=idx_or_val) :: int64
        $6binary_subscr.2 = getitem(value=A, index=idx_or_val) :: int64
        del idx_or_val
        del A
        $8return_value.3 = cast(value=$6binary_subscr.2) :: int64
        del $6binary_subscr.2
        return $8return_value.3



Function name: default_lt
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/quicksort.py
with signature: (int64, int64) -> bool
61: def default_lt(a, b):
62:     """
63:     Trivial comparison function between two keys.
64:     """
65:     return a < b
      label 0
        a = arg(0, name=a) :: int64
        b = arg(1, name=b) :: int64
        $6compare_op.2 = a < b :: bool
        del b
        del a
        $8return_value.3 = cast(value=$6compare_op.2) :: bool
        del $6compare_op.2
        return $8return_value.3



Function name: partition
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/quicksort.py
with signature: (array(int64, 1d, C), array(int64, 1d, C), int64, int64) -> int64
89: @wrap
90: def partition(A, R, low, high):
91:     """
92:     Partition A[low:high + 1] around a chosen pivot. The pivot's index
93:     is returned.
94:     """
95:     assert low >= 0
      label 0
        A = arg(0, name=A) :: array(int64, 1d, C)
        R = arg(1, name=R) :: array(int64, 1d, C)
        low = arg(2, name=low) :: int64
        high = arg(3, name=high) :: int64
        $const4.1 = const(int, 0) :: Literal[int](0)
        $6compare_op.2 = low >= $const4.1 :: bool
        del $const4.1
        branch $6compare_op.2, 14, 10
      label 10
        del low
        del high
        del R
        del A
        del $6compare_op.2
        $10load_global.0 = global(AssertionError: <class 'AssertionError'>) :: AssertionError
        del $10load_global.0
        raise <class 'AssertionError'>
96:     assert high > low
      label 14
        del $6compare_op.2
        $18compare_op.2 = high > low :: bool
        branch $18compare_op.2, 26, 22
      label 22
        del low
        del high
        del R
        del A
        del $18compare_op.2
        $22load_global.0 = global(AssertionError: <class 'AssertionError'>) :: AssertionError
        del $22load_global.0
        raise <class 'AssertionError'>
97:
98:     mid = (low + high) >> 1
      label 26
        del $18compare_op.2
        $30binary_add.2 = low + high :: int64
        $const32.3 = const(int, 1) :: Literal[int](1)
        $34binary_rshift.4 = $30binary_add.2 >> $const32.3 :: int64
        del $const32.3
        del $30binary_add.2
        mid = $34binary_rshift.4 :: int64
        del $34binary_rshift.4
99:     # NOTE: the pattern of swaps below for the pivot choice and the
100:     # partitioning gives good results (i.e. regular O(n log n))
101:     # on sorted, reverse-sorted, and uniform arrays. Subtle changes
102:     # risk breaking this property.
103:
104:     # median of three {low, middle, high}
105:     if LT(GET(A, R[mid]), GET(A, R[low])):
        $38load_deref.5 = freevar(LT: <function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>) :: Function(<function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>)
        $40load_deref.6 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
        $48binary_subscr.10 = getitem(value=R, index=mid) :: int64
        $50call_function.11 = call $40load_deref.6(A, $48binary_subscr.10, func=$40load_deref.6, args=[Var(A, quicksort.py:95), Var($48binary_subscr.10, quicksort.py:105)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
        del $48binary_subscr.10
        del $40load_deref.6
        $52load_deref.12 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
        $60binary_subscr.16 = getitem(value=R, index=low) :: int64
        $62call_function.17 = call $52load_deref.12(A, $60binary_subscr.16, func=$52load_deref.12, args=[Var(A, quicksort.py:95), Var($60binary_subscr.16, quicksort.py:105)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
        del $60binary_subscr.16
        del $52load_deref.12
        $64call_function.18 = call $38load_deref.5($50call_function.11, $62call_function.17, func=$38load_deref.5, args=[Var($50call_function.11, quicksort.py:105), Var($62call_function.17, quicksort.py:105)], kws=(), vararg=None) :: (int64, int64) -> bool
        del $62call_function.17
        del $50call_function.11
        del $38load_deref.5
        branch $64call_function.18, 68, 94
106:         R[low], R[mid] = R[mid], R[low]
          label 68
            del $64call_function.18
            $72binary_subscr.2 = getitem(value=R, index=mid) :: int64
            $78binary_subscr.5 = getitem(value=R, index=low) :: int64
            R[low] = $72binary_subscr.2 :: (array(int64, 1d, C), int64, int64) -> none
            del $72binary_subscr.2
            R[mid] = $78binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
            del $78binary_subscr.5
107:     if LT(GET(A, R[high]), GET(A, R[mid])):
        jump 94
      label 94
        del $64call_function.18
        $94load_deref.0 = freevar(LT: <function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>) :: Function(<function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>)
        $96load_deref.1 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
        $104binary_subscr.5 = getitem(value=R, index=high) :: int64
        $106call_function.6 = call $96load_deref.1(A, $104binary_subscr.5, func=$96load_deref.1, args=[Var(A, quicksort.py:95), Var($104binary_subscr.5, quicksort.py:107)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
        del $96load_deref.1
        del $104binary_subscr.5
        $108load_deref.7 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
        $116binary_subscr.11 = getitem(value=R, index=mid) :: int64
        $118call_function.12 = call $108load_deref.7(A, $116binary_subscr.11, func=$108load_deref.7, args=[Var(A, quicksort.py:95), Var($116binary_subscr.11, quicksort.py:107)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
        del $116binary_subscr.11
        del $108load_deref.7
        $120call_function.13 = call $94load_deref.0($106call_function.6, $118call_function.12, func=$94load_deref.0, args=[Var($106call_function.6, quicksort.py:107), Var($118call_function.12, quicksort.py:107)], kws=(), vararg=None) :: (int64, int64) -> bool
        del $94load_deref.0
        del $118call_function.12
        del $106call_function.6
        branch $120call_function.13, 124, 150
108:         R[high], R[mid] = R[mid], R[high]
          label 124
            del $120call_function.13
            $128binary_subscr.2 = getitem(value=R, index=mid) :: int64
            $134binary_subscr.5 = getitem(value=R, index=high) :: int64
            R[high] = $128binary_subscr.2 :: (array(int64, 1d, C), int64, int64) -> none
            del $128binary_subscr.2
            R[mid] = $134binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
            del $134binary_subscr.5
109:     if LT(GET(A, R[mid]), GET(A, R[low])):
        jump 150
      label 150
        del $120call_function.13
        $150load_deref.0 = freevar(LT: <function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>) :: Function(<function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>)
        $152load_deref.1 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
        $160binary_subscr.5 = getitem(value=R, index=mid) :: int64
        $162call_function.6 = call $152load_deref.1(A, $160binary_subscr.5, func=$152load_deref.1, args=[Var(A, quicksort.py:95), Var($160binary_subscr.5, quicksort.py:109)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
        del $160binary_subscr.5
        del $152load_deref.1
        $164load_deref.7 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
        $172binary_subscr.11 = getitem(value=R, index=low) :: int64
        $174call_function.12 = call $164load_deref.7(A, $172binary_subscr.11, func=$164load_deref.7, args=[Var(A, quicksort.py:95), Var($172binary_subscr.11, quicksort.py:109)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
        del $172binary_subscr.11
        del $164load_deref.7
        $176call_function.13 = call $150load_deref.0($162call_function.6, $174call_function.12, func=$150load_deref.0, args=[Var($162call_function.6, quicksort.py:109), Var($174call_function.12, quicksort.py:109)], kws=(), vararg=None) :: (int64, int64) -> bool
        del $174call_function.12
        del $162call_function.6
        del $150load_deref.0
        branch $176call_function.13, 180, 206
110:         R[low], R[mid] = R[mid], R[low]
          label 180
            del $176call_function.13
            $184binary_subscr.2 = getitem(value=R, index=mid) :: int64
            $190binary_subscr.5 = getitem(value=R, index=low) :: int64
            R[low] = $184binary_subscr.2 :: (array(int64, 1d, C), int64, int64) -> none
            del $184binary_subscr.2
            R[mid] = $190binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
            del $190binary_subscr.5
111:     pivot = GET(A, R[mid])
        jump 206
      label 206
        del $176call_function.13
        $206load_deref.0 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
        $214binary_subscr.4 = getitem(value=R, index=mid) :: int64
        $216call_function.5 = call $206load_deref.0(A, $214binary_subscr.4, func=$206load_deref.0, args=[Var(A, quicksort.py:95), Var($214binary_subscr.4, quicksort.py:111)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
        del $214binary_subscr.4
        del $206load_deref.0
        pivot = $216call_function.5 :: int64
        del $216call_function.5
112:
113:     # Temporarily stash the pivot at the end
114:     R[high], R[mid] = R[mid], R[high]
        $224binary_subscr.8 = getitem(value=R, index=mid) :: int64
        $230binary_subscr.11 = getitem(value=R, index=high) :: int64
        R[high] = $224binary_subscr.8 :: (array(int64, 1d, C), int64, int64) -> none
        del $224binary_subscr.8
        R[mid] = $230binary_subscr.11 :: (array(int64, 1d, C), int64, int64) -> none
        del mid
        del $230binary_subscr.11
115:     i = low
        i = low :: int64
116:     j = high - 1
        $const252.18 = const(int, 1) :: Literal[int](1)
        $254binary_subtract.19 = high - $const252.18 :: int64
        del $const252.18
        j = $254binary_subtract.19 :: int64
        del $254binary_subtract.19
117:     while True:
        jump 258
      label 258
118:         while i < high and LT(GET(A, R[i]), pivot):
            jump 260
          label 260
            jump 262
          label 262
            $266compare_op.2 = i < high :: bool
            branch $266compare_op.2, 272, 306
          label 272
            del $266compare_op.2
            $272load_deref.0 = freevar(LT: <function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>) :: Function(<function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>)
            $274load_deref.1 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
            $282binary_subscr.5 = getitem(value=R, index=i) :: int64
            $284call_function.6 = call $274load_deref.1(A, $282binary_subscr.5, func=$274load_deref.1, args=[Var(A, quicksort.py:95), Var($282binary_subscr.5, quicksort.py:118)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
            del $282binary_subscr.5
            del $274load_deref.1
            $288call_function.8 = call $272load_deref.0($284call_function.6, pivot, func=$272load_deref.0, args=[Var($284call_function.6, quicksort.py:118), Var(pivot, quicksort.py:111)], kws=(), vararg=None) :: (int64, int64) -> bool
            del $284call_function.6
            del $272load_deref.0
            branch $288call_function.8, 294, 306
119:             i += 1
              label 294
                del $288call_function.8
                $const296.1 = const(int, 1) :: Literal[int](1)
                $298inplace_add.2 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=i, rhs=$const296.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const296.1
                i = $298inplace_add.2 :: int64
                del $298inplace_add.2
                jump 262
              label 306
120:         while j >= low and LT(pivot, GET(A, R[j])):
            del $288call_function.8
            del $266compare_op.2
            jump 308
          label 308
            jump 310
          label 310
            $314compare_op.2 = j >= low :: bool
            branch $314compare_op.2, 320, 354
          label 320
            del $314compare_op.2
            $320load_deref.0 = freevar(LT: <function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>) :: Function(<function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>)
            $324load_deref.2 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
            $332binary_subscr.6 = getitem(value=R, index=j) :: int64
            $334call_function.7 = call $324load_deref.2(A, $332binary_subscr.6, func=$324load_deref.2, args=[Var(A, quicksort.py:95), Var($332binary_subscr.6, quicksort.py:120)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
            del $332binary_subscr.6
            del $324load_deref.2
            $336call_function.8 = call $320load_deref.0(pivot, $334call_function.7, func=$320load_deref.0, args=[Var(pivot, quicksort.py:111), Var($334call_function.7, quicksort.py:120)], kws=(), vararg=None) :: (int64, int64) -> bool
            del $334call_function.7
            del $320load_deref.0
            branch $336call_function.8, 342, 354
121:             j -= 1
              label 342
                del $336call_function.8
                $const344.1 = const(int, 1) :: Literal[int](1)
                $346inplace_subtract.2 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=j, rhs=$const344.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const344.1
                j = $346inplace_subtract.2 :: int64
                del $346inplace_subtract.2
                jump 310
              label 354
122:         if i >= j:
            del $336call_function.8
            del $314compare_op.2
            jump 356
          label 356
            $360compare_op.2 = i >= j :: bool
            branch $360compare_op.2, 366, 368
123:             break
              label 366
                del pivot
                del low
                del j
                del A
                del $360compare_op.2
                jump 416
124:         R[i], R[j] = R[j], R[i]
          label 368
            del $360compare_op.2
            $372binary_subscr.2 = getitem(value=R, index=j) :: int64
            $378binary_subscr.5 = getitem(value=R, index=i) :: int64
            R[i] = $372binary_subscr.2 :: (array(int64, 1d, C), int64, int64) -> none
            del $372binary_subscr.2
            R[j] = $378binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
            del $378binary_subscr.5
125:         i += 1
            $const396.11 = const(int, 1) :: Literal[int](1)
            $398inplace_add.12 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=i, rhs=$const396.11, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const396.11
            i = $398inplace_add.12 :: int64
            del $398inplace_add.12
126:         j -= 1
            $const404.14 = const(int, 1) :: Literal[int](1)
            $406inplace_subtract.15 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=j, rhs=$const404.14, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const404.14
            j = $406inplace_subtract.15 :: int64
            del $406inplace_subtract.15
            jump 260
127:     # Put the pivot back in its final place (all items before `i`
128:     # are smaller than the pivot, all items at/after `i` are larger)
129:     R[i], R[high] = R[high], R[i]
      label 416
        $420binary_subscr.2 = getitem(value=R, index=high) :: int64
        $426binary_subscr.5 = getitem(value=R, index=i) :: int64
        R[i] = $420binary_subscr.2 :: (array(int64, 1d, C), int64, int64) -> none
        del $420binary_subscr.2
        R[high] = $426binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
        del high
        del R
        del $426binary_subscr.5
130:     return i
        $444return_value.11 = cast(value=i) :: int64
        del i
        return $444return_value.11



Function name: insertion_sort
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/quicksort.py
with signature: (array(int64, 1d, C), array(int64, 1d, C), int64, int64) -> none
69: @wrap
70: def insertion_sort(A, R, low, high):
71:     """
72:     Insertion sort A[low:high + 1]. Note the inclusive bounds.
73:     """
74:     assert low >= 0
      label 0
        A = arg(0, name=A) :: array(int64, 1d, C)
        R = arg(1, name=R) :: array(int64, 1d, C)
        low = arg(2, name=low) :: int64
        high = arg(3, name=high) :: int64
        $const4.1 = const(int, 0) :: Literal[int](0)
        $6compare_op.2 = low >= $const4.1 :: bool
        del $const4.1
        branch $6compare_op.2, 14, 10
      label 10
        del low
        del high
        del R
        del A
        del $6compare_op.2
        $10load_global.0 = global(AssertionError: <class 'AssertionError'>) :: AssertionError
        del $10load_global.0
        raise <class 'AssertionError'>
75:     if high <= low:
      label 14
        del $6compare_op.2
        $18compare_op.2 = high <= low :: bool
        branch $18compare_op.2, 22, 26
76:         return
          label 22
            del low
            del high
            del R
            del A
            del $18compare_op.2
            $const22.0 = const(NoneType, None) :: none
            $24return_value.1 = cast(value=$const22.0) :: none
            del $const22.0
            return $24return_value.1
77:
78:     for i in range(low + 1, high + 1):
      label 26
        del $18compare_op.2
        $28load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $const32.2 = const(int, 1) :: Literal[int](1)
        $34binary_add.3 = low + $const32.2 :: int64
        del $const32.2
        $const38.5 = const(int, 1) :: Literal[int](1)
        $40binary_add.6 = high + $const38.5 :: int64
        del high
        del $const38.5
        $42call_function.7 = call $28load_global.0($34binary_add.3, $40binary_add.6, func=$28load_global.0, args=[Var($34binary_add.3, quicksort.py:78), Var($40binary_add.6, quicksort.py:78)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
        del $40binary_add.6
        del $34binary_add.3
        del $28load_global.0
        $44get_iter.8 = getiter(value=$42call_function.7) :: range_iter_int64
        del $42call_function.7
        $phi46.0 = $44get_iter.8 :: range_iter_int64
        del $44get_iter.8
        jump 46
      label 46
        $46for_iter.1 = iternext(value=$phi46.0) :: pair<int64, bool>
        $46for_iter.2 = pair_first(value=$46for_iter.1) :: int64
        $46for_iter.3 = pair_second(value=$46for_iter.1) :: bool
        del $46for_iter.1
        $phi48.1 = $46for_iter.2 :: int64
        del $46for_iter.2
        branch $46for_iter.3, 48, 144
      label 48
        del $46for_iter.3
        i = $phi48.1 :: int64
        del $phi48.1
79:         k = R[i]
            $54binary_subscr.4 = getitem(value=R, index=i) :: int64
            k = $54binary_subscr.4 :: int64
            del $54binary_subscr.4
80:         v = GET(A, k)
            $58load_deref.5 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
            $64call_function.8 = call $58load_deref.5(A, k, func=$58load_deref.5, args=[Var(A, quicksort.py:74), Var(k, quicksort.py:79)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
            del $58load_deref.5
            v = $64call_function.8 :: int64
            del $64call_function.8
81:         # Insert v into A[low:i]
82:         j = i
            j = i :: int64
            del i
83:         while j > low and LT(v, GET(A, R[j - 1])):
            jump 72
          label 72
            jump 74
          label 74
            $78compare_op.3 = j > low :: bool
            branch $78compare_op.3, 82, 132
          label 82
            del $78compare_op.3
            $82load_deref.1 = freevar(LT: <function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>) :: Function(<function make_quicksort_impl.<locals>.default_lt at 0x7f51d323f050>)
            $86load_deref.3 = freevar(GET: <function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>) :: Function(<function make_quicksort_impl.<locals>.GET at 0x7f51d323fc20>)
            $const94.7 = const(int, 1) :: Literal[int](1)
            $96binary_subtract.8 = j - $const94.7 :: int64
            del $const94.7
            $98binary_subscr.9 = getitem(value=R, index=$96binary_subtract.8) :: int64
            del $96binary_subtract.8
            $100call_function.10 = call $86load_deref.3(A, $98binary_subscr.9, func=$86load_deref.3, args=[Var(A, quicksort.py:74), Var($98binary_subscr.9, quicksort.py:83)], kws=(), vararg=None) :: (array(int64, 1d, C), int64) -> int64
            del $98binary_subscr.9
            del $86load_deref.3
            $102call_function.11 = call $82load_deref.1(v, $100call_function.10, func=$82load_deref.1, args=[Var(v, quicksort.py:80), Var($100call_function.10, quicksort.py:83)], kws=(), vararg=None) :: (int64, int64) -> bool
            del $82load_deref.1
            del $100call_function.10
            branch $102call_function.11, 106, 132
84:             # Make place for moving A[i] downwards
85:             R[j] = R[j - 1]
              label 106
                del $102call_function.11
                $const110.3 = const(int, 1) :: Literal[int](1)
                $112binary_subtract.4 = j - $const110.3 :: int64
                del $const110.3
                $114binary_subscr.5 = getitem(value=R, index=$112binary_subtract.4) :: int64
                del $112binary_subtract.4
                R[j] = $114binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
                del $114binary_subscr.5
86:             j -= 1
                $const124.9 = const(int, 1) :: Literal[int](1)
                $126inplace_subtract.10 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=j, rhs=$const124.9, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const124.9
                j = $126inplace_subtract.10 :: int64
                del $126inplace_subtract.10
                jump 74
              label 132
87:         R[j] = k
            del v
            del $78compare_op.3
            del $102call_function.11
            jump 134
          label 134
            R[j] = k :: (array(int64, 1d, C), int64, int64) -> none
            del k
            del j
            jump 46
          label 144
            del low
            del R
            del A
            del $phi48.1
            del $phi46.0
            del $46for_iter.3
            jump 146
          label 146
            $const146.0 = const(NoneType, None) :: none
            $148return_value.1 = cast(value=$const146.0) :: none
            del $const146.0
            return $148return_value.1



Function name: run_quicksort
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/quicksort.py
with signature: (array(int64, 1d, C),) -> array(int64, 1d, C)
167: @wrap
168: def run_quicksort(A):
169:     R = make_res(A)
      label 0
        A = arg(0, name=A) :: array(int64, 1d, C)
        $2load_deref.0 = freevar(make_res: <function make_quicksort_impl.<locals>.make_res at 0x7f51d323fcb0>) :: Function(<function make_quicksort_impl.<locals>.make_res at 0x7f51d323fcb0>)
        $6call_function.2 = call $2load_deref.0(A, func=$2load_deref.0, args=[Var(A, quicksort.py:169)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> array(int64, 1d, C)
        del $2load_deref.0
        R = $6call_function.2 :: array(int64, 1d, C)
        del $6call_function.2
170:
171:     if len(A) < 2:
        $10load_global.3 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $14call_function.5 = call $10load_global.3(A, func=$10load_global.3, args=[Var(A, quicksort.py:169)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> int64
        del $10load_global.3
        $const16.6 = const(int, 2) :: Literal[int](2)
        $18compare_op.7 = $14call_function.5 < $const16.6 :: bool
        del $const16.6
        del $14call_function.5
        branch $18compare_op.7, 22, 26
172:         return R
          label 22
            del A
            del $18compare_op.7
            $24return_value.1 = cast(value=R) :: array(int64, 1d, C)
            del R
            return $24return_value.1
173:
174:     stack = [Partition(zero, zero)] * MAX_STACK
      label 26
        del $18compare_op.7
        $26load_global.0 = global(Partition: <class 'numba.targets.quicksort.Partition'>) :: class(<class 'numba.targets.quicksort.Partition'>)
        $28load_deref.1 = freevar(zero: 0) :: int64
        $30load_deref.2 = freevar(zero: 0) :: int64
        $32call_function.3 = call $26load_global.0($28load_deref.1, $30load_deref.2, func=$26load_global.0, args=[Var($28load_deref.1, quicksort.py:174), Var($30load_deref.2, quicksort.py:174)], kws=(), vararg=None) :: (int64, int64) -> Partition(int64 x 2)
        del $30load_deref.2
        del $28load_deref.1
        del $26load_global.0
        $34build_list.4 = build_list(items=[Var($32call_function.3, quicksort.py:174)]) :: list(Partition(int64 x 2))
        del $32call_function.3
        $36load_global.5 = global(MAX_STACK: 100) :: Literal[int](100)
        $38binary_multiply.6 = $34build_list.4 * $36load_global.5 :: list(Partition(int64 x 2))
        del $36load_global.5
        del $34build_list.4
        stack = $38binary_multiply.6 :: list(Partition(int64 x 2))
        del $38binary_multiply.6
175:     stack[0] = Partition(zero, len(A) - 1)
        $42load_global.7 = global(Partition: <class 'numba.targets.quicksort.Partition'>) :: class(<class 'numba.targets.quicksort.Partition'>)
        $44load_deref.8 = freevar(zero: 0) :: int64
        $46load_global.9 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $50call_function.11 = call $46load_global.9(A, func=$46load_global.9, args=[Var(A, quicksort.py:169)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> int64
        del $46load_global.9
        $const52.12 = const(int, 1) :: Literal[int](1)
        $54binary_subtract.13 = $50call_function.11 - $const52.12 :: int64
        del $const52.12
        del $50call_function.11
        $56call_function.14 = call $42load_global.7($44load_deref.8, $54binary_subtract.13, func=$42load_global.7, args=[Var($44load_deref.8, quicksort.py:175), Var($54binary_subtract.13, quicksort.py:175)], kws=(), vararg=None) :: (int64, int64) -> Partition(int64 x 2)
        del $54binary_subtract.13
        del $44load_deref.8
        del $42load_global.7
        $const60.16 = const(int, 0) :: Literal[int](0)
        stack[0] = $56call_function.14
        del $const60.16
        del $56call_function.14
176:     n = 1
        $const64.17 = const(int, 1) :: Literal[int](1)
        n = $const64.17 :: int64
        del $const64.17
177:
178:     while n > 0:
        jump 68
      label 68
        jump 70
      label 70
        $const72.1 = const(int, 0) :: Literal[int](0)
        $74compare_op.2 = n > $const72.1 :: bool
        del $const72.1
        branch $74compare_op.2, 80, 262
179:         n -= 1
          label 80
            del $74compare_op.2
            $const82.1 = const(int, 1) :: Literal[int](1)
            $84inplace_subtract.2 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=n, rhs=$const82.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const82.1
            n = $84inplace_subtract.2 :: int64
            del $84inplace_subtract.2
180:         low, high = stack[n]
            $92binary_subscr.5 = getitem(value=stack, index=n) :: Partition(int64 x 2)
            $94unpack_sequence.8 = exhaust_iter(value=$92binary_subscr.5, count=2) :: Partition(int64 x 2)
            del $92binary_subscr.5
            $94unpack_sequence.6 = static_getitem(value=$94unpack_sequence.8, index=0, index_var=None) :: int64
            $94unpack_sequence.7 = static_getitem(value=$94unpack_sequence.8, index=1, index_var=None) :: int64
            del $94unpack_sequence.8
            low = $94unpack_sequence.6 :: int64
            del $94unpack_sequence.6
            high = $94unpack_sequence.7 :: int64
            del $94unpack_sequence.7
181:         # Partition until it becomes more efficient to do an insertion sort
182:         while high - low >= SMALL_QUICKSORT:
            jump 100
          label 100
            jump 102
          label 102
            $106binary_subtract.2 = high - low :: int64
            $108load_global.3 = global(SMALL_QUICKSORT: 15) :: Literal[int](15)
            $110compare_op.4 = $106binary_subtract.2 >= $108load_global.3 :: bool
            del $108load_global.3
            del $106binary_subtract.2
            branch $110compare_op.4, 114, 244
          label 265
            jump 102
183:             assert n < MAX_STACK
              label 114
                del $110compare_op.4
                $116load_global.1 = global(MAX_STACK: 100) :: Literal[int](100)
                $118compare_op.2 = n < $116load_global.1 :: bool
                del $116load_global.1
                branch $118compare_op.2, 126, 122
              label 122
                del stack
                del n
                del low
                del high
                del R
                del A
                del $118compare_op.2
                $122load_global.0 = global(AssertionError: <class 'AssertionError'>) :: AssertionError
                del $122load_global.0
                raise <class 'AssertionError'>
184:             i = partition(A, R, low, high)
              label 126
                del $118compare_op.2
                $126load_deref.0 = freevar(partition: <function make_quicksort_impl.<locals>.partition at 0x7f51d3aac200>) :: Function(<function make_quicksort_impl.<locals>.partition at 0x7f51d3aac200>)
                $136call_function.5 = call $126load_deref.0(A, R, low, high, func=$126load_deref.0, args=[Var(A, quicksort.py:169), Var(R, quicksort.py:169), Var(low, quicksort.py:180), Var(high, quicksort.py:180)], kws=(), vararg=None) :: (array(int64, 1d, C), array(int64, 1d, C), int64, int64) -> int64
                del $126load_deref.0
                i = $136call_function.5 :: int64
                del $136call_function.5
185:             # Push largest partition on the stack
186:             if high - i > i - low:
                $144binary_subtract.8 = high - i :: int64
                $150binary_subtract.11 = i - low :: int64
                $152compare_op.12 = $144binary_subtract.8 > $150binary_subtract.11 :: bool
                del $150binary_subtract.11
                del $144binary_subtract.8
                branch $152compare_op.12, 156, 200
187:                 # Right is larger
188:                 if high > i:
                  label 156
                    del $152compare_op.12
                    $160compare_op.2 = high > i :: bool
                    branch $160compare_op.2, 164, 190
189:                     stack[n] = Partition(i + 1, high)
                      label 164
                        del $160compare_op.2
                        $164load_global.0 = global(Partition: <class 'numba.targets.quicksort.Partition'>) :: class(<class 'numba.targets.quicksort.Partition'>)
                        $const168.2 = const(int, 1) :: Literal[int](1)
                        $170binary_add.3 = i + $const168.2 :: int64
                        del $const168.2
                        $174call_function.5 = call $164load_global.0($170binary_add.3, high, func=$164load_global.0, args=[Var($170binary_add.3, quicksort.py:189), Var(high, quicksort.py:180)], kws=(), vararg=None) :: (int64, int64) -> Partition(int64 x 2)
                        del high
                        del $170binary_add.3
                        del $164load_global.0
                        stack[n] = $174call_function.5 :: (list(Partition(int64 x 2)), int64, Partition(int64 x 2)) -> none
                        del $174call_function.5
190:                     n += 1
                        $const184.9 = const(int, 1) :: Literal[int](1)
                        $186inplace_add.10 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=n, rhs=$const184.9, static_lhs=Undefined, static_rhs=Undefined) :: int64
                        del $const184.9
                        n = $186inplace_add.10 :: int64
                        del $186inplace_add.10
191:                 high = i - 1
                    jump 190
                  label 190
                    del $160compare_op.2
                    $const192.1 = const(int, 1) :: Literal[int](1)
                    $194binary_subtract.2 = i - $const192.1 :: int64
                    del i
                    del $const192.1
                    high = $194binary_subtract.2 :: int64
                    del $194binary_subtract.2
                    jump 265
192:             else:
193:                 if i > low:
                  label 200
                    del $152compare_op.12
                    $204compare_op.2 = i > low :: bool
                    branch $204compare_op.2, 208, 234
194:                     stack[n] = Partition(low, i - 1)
                      label 208
                        del $204compare_op.2
                        $208load_global.0 = global(Partition: <class 'numba.targets.quicksort.Partition'>) :: class(<class 'numba.targets.quicksort.Partition'>)
                        $const214.3 = const(int, 1) :: Literal[int](1)
                        $216binary_subtract.4 = i - $const214.3 :: int64
                        del $const214.3
                        $218call_function.5 = call $208load_global.0(low, $216binary_subtract.4, func=$208load_global.0, args=[Var(low, quicksort.py:180), Var($216binary_subtract.4, quicksort.py:194)], kws=(), vararg=None) :: (int64, int64) -> Partition(int64 x 2)
                        del low
                        del $216binary_subtract.4
                        del $208load_global.0
                        stack[n] = $218call_function.5 :: (list(Partition(int64 x 2)), int64, Partition(int64 x 2)) -> none
                        del $218call_function.5
195:                     n += 1
                        $const228.9 = const(int, 1) :: Literal[int](1)
                        $230inplace_add.10 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=n, rhs=$const228.9, static_lhs=Undefined, static_rhs=Undefined) :: int64
                        del $const228.9
                        n = $230inplace_add.10 :: int64
                        del $230inplace_add.10
196:                 low = i + 1
                    jump 234
                  label 234
                    del $204compare_op.2
                    $const236.1 = const(int, 1) :: Literal[int](1)
                    $238binary_add.2 = i + $const236.1 :: int64
                    del i
                    del $const236.1
                    low = $238binary_add.2 :: int64
                    del $238binary_add.2
                    jump 265
                  label 244
197:
198:         insertion_sort(A, R, low, high)
            del $110compare_op.4
            jump 246
          label 246
            $246load_deref.0 = freevar(insertion_sort: <function make_quicksort_impl.<locals>.insertion_sort at 0x7f51d3b4e4d0>) :: Function(<function make_quicksort_impl.<locals>.insertion_sort at 0x7f51d3b4e4d0>)
            $256call_function.5 = call $246load_deref.0(A, R, low, high, func=$246load_deref.0, args=[Var(A, quicksort.py:169), Var(R, quicksort.py:169), Var(low, quicksort.py:180), Var(high, quicksort.py:180)], kws=(), vararg=None) :: (array(int64, 1d, C), array(int64, 1d, C), int64, int64) -> none
            del low
            del high
            del $256call_function.5
            del $246load_deref.0
            jump 70
          label 262
199:
200:     return R
        del stack
        del n
        del A
        del $74compare_op.2
        jump 264
      label 264
        $266return_value.1 = cast(value=R) :: array(int64, 1d, C)
        del R
        return $266return_value.1



Function name: array_argsort_impl
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arrayobj.py
with signature: (array(int64, 1d, C),) -> array(int64, 1d, C)
4948: def array_argsort_impl(arr):
4949:     return sort_func(arr)
      label 0
        arr = arg(0, name=arr) :: array(int64, 1d, C)
        $2load_deref.0 = freevar(sort_func: <function make_quicksort_impl.<locals>.run_quicksort at 0x7f51d344b050>) :: Function(<function make_quicksort_impl.<locals>.run_quicksort at 0x7f51d344b050>)
        $6call_function.2 = call $2load_deref.0(arr, func=$2load_deref.0, args=[Var(arr, arrayobj.py:4949)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> array(int64, 1d, C)
        del arr
        del $2load_deref.0
        $8return_value.3 = cast(value=$6call_function.2) :: array(int64, 1d, C)
        del $6call_function.2
        return $8return_value.3



Function name: final_assembly
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/BRIO_2D_multidimarr.py
with signature: (array(float64, 2d, C), array(float64, 2d, C), array(int64, 1d, C), array(int64, 1d, C), array(int64, 1d, C), array(int64, 1d, C), array(int64, 2d, C), array(float64, 2d, C), array(float64, 2d, C), array(int64, 1d, C), int64) -> none
192: @njit
193: def final_assembly(
194:     points,
195:     new_points,
196:     rounds,
197:     boundary_indices,
198:     points_left_old,
199:     points_left_new,
200:     hilbert_arr,
201:     org_points,
202:     temp_points,
203:     new_indices,
204:     p
205: ):
206:     make_hilbert_curve(hilbert_arr, p)
      label 0
        points = arg(0, name=points) :: array(float64, 2d, C)
        new_points = arg(1, name=new_points) :: array(float64, 2d, C)
        rounds = arg(2, name=rounds) :: array(int64, 1d, C)
        boundary_indices = arg(3, name=boundary_indices) :: array(int64, 1d, C)
        points_left_old = arg(4, name=points_left_old) :: array(int64, 1d, C)
        del points_left_old
        points_left_new = arg(5, name=points_left_new) :: array(int64, 1d, C)
        del points_left_new
        hilbert_arr = arg(6, name=hilbert_arr) :: array(int64, 2d, C)
        org_points = arg(7, name=org_points) :: array(float64, 2d, C)
        temp_points = arg(8, name=temp_points) :: array(float64, 2d, C)
        new_indices = arg(9, name=new_indices) :: array(int64, 1d, C)
        p = arg(10, name=p) :: int64
        $2load_global.0 = global(make_hilbert_curve: CPUDispatcher(<function make_hilbert_curve at 0x7f51d4f469e0>)) :: type(CPUDispatcher(<function make_hilbert_curve at 0x7f51d4f469e0>))
        $8call_function.3 = call $2load_global.0(hilbert_arr, p, func=$2load_global.0, args=[Var(hilbert_arr, BRIO_2D_multidimarr.py:206), Var(p, BRIO_2D_multidimarr.py:206)], kws=(), vararg=None) :: (array(int64, 2d, C), int64) -> none
        del $8call_function.3
        del $2load_global.0
207:
208:     for i in range(len(boundary_indices)-1):
        jump 12
      label 12
        $14load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $16load_global.1 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $20call_function.3 = call $16load_global.1(boundary_indices, func=$16load_global.1, args=[Var(boundary_indices, BRIO_2D_multidimarr.py:206)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> int64
        del $16load_global.1
        $const22.4 = const(int, 1) :: Literal[int](1)
        $24binary_subtract.5 = $20call_function.3 - $const22.4 :: int64
        del $const22.4
        del $20call_function.3
        $26call_function.6 = call $14load_global.0($24binary_subtract.5, func=$14load_global.0, args=[Var($24binary_subtract.5, BRIO_2D_multidimarr.py:208)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del $24binary_subtract.5
        del $14load_global.0
        $28get_iter.7 = getiter(value=$26call_function.6) :: range_iter_int64
        del $26call_function.6
        $phi30.0 = $28get_iter.7 :: range_iter_int64
        del $28get_iter.7
        jump 30
      label 30
        $30for_iter.1 = iternext(value=$phi30.0) :: pair<int64, bool>
        $30for_iter.2 = pair_first(value=$30for_iter.1) :: int64
        $30for_iter.3 = pair_second(value=$30for_iter.1) :: bool
        del $30for_iter.1
        $phi32.1 = $30for_iter.2 :: int64
        del $30for_iter.2
        branch $30for_iter.3, 32, 244
      label 32
        del $30for_iter.3
        i = $phi32.1 :: int64
        del $phi32.1
209:         org_points_end = 0
            $const34.2 = const(int, 0) :: Literal[int](0)
            org_points_end = $const34.2 :: int64
            del $const34.2
210:
211:         for j in range(boundary_indices[i], boundary_indices[i+1]):
            jump 38
          label 38
            $40load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
            $46binary_subscr.4 = getitem(value=boundary_indices, index=i) :: int64
            $const52.7 = const(int, 1) :: Literal[int](1)
            $54binary_add.8 = i + $const52.7 :: int64
            del $const52.7
            $56binary_subscr.9 = getitem(value=boundary_indices, index=$54binary_add.8) :: int64
            del $54binary_add.8
            $58call_function.10 = call $40load_global.1($46binary_subscr.4, $56binary_subscr.9, func=$40load_global.1, args=[Var($46binary_subscr.4, BRIO_2D_multidimarr.py:211), Var($56binary_subscr.9, BRIO_2D_multidimarr.py:211)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
            del $56binary_subscr.9
            del $46binary_subscr.4
            del $40load_global.1
            $60get_iter.11 = getiter(value=$58call_function.10) :: range_iter_int64
            del $58call_function.10
            $phi62.1 = $60get_iter.11 :: range_iter_int64
            del $60get_iter.11
            jump 62
          label 62
            $62for_iter.2 = iternext(value=$phi62.1) :: pair<int64, bool>
            $62for_iter.3 = pair_first(value=$62for_iter.2) :: int64
            $62for_iter.4 = pair_second(value=$62for_iter.2) :: bool
            del $62for_iter.2
            $phi64.2 = $62for_iter.3 :: int64
            del $62for_iter.3
            branch $62for_iter.4, 64, 124
          label 64
            del $62for_iter.4
            j = $phi64.2 :: int64
            del $phi64.2
212:             org_points[org_points_end, 0] = points[rounds[j], 0]
                $72binary_subscr.6 = getitem(value=rounds, index=j) :: int64
                $const74.7 = const(int, 0) :: Literal[int](0)
                $76build_tuple.8 = build_tuple(items=[Var($72binary_subscr.6, BRIO_2D_multidimarr.py:212), Var($const74.7, BRIO_2D_multidimarr.py:212)]) :: Tuple(int64, Literal[int](0))
                del $const74.7
                del $72binary_subscr.6
                $78binary_subscr.9 = getitem(value=points, index=$76build_tuple.8) :: float64
                del $76build_tuple.8
                $const84.12 = const(int, 0) :: Literal[int](0)
                $86build_tuple.13 = build_tuple(items=[Var(org_points_end, BRIO_2D_multidimarr.py:209), Var($const84.12, BRIO_2D_multidimarr.py:212)]) :: Tuple(int64, Literal[int](0))
                del $const84.12
                org_points[$86build_tuple.13] = $78binary_subscr.9 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
                del $86build_tuple.13
                del $78binary_subscr.9
213:             org_points[org_points_end, 1] = points[rounds[j], 1]
                $96binary_subscr.17 = getitem(value=rounds, index=j) :: int64
                del j
                $const98.18 = const(int, 1) :: Literal[int](1)
                $100build_tuple.19 = build_tuple(items=[Var($96binary_subscr.17, BRIO_2D_multidimarr.py:213), Var($const98.18, BRIO_2D_multidimarr.py:213)]) :: Tuple(int64, Literal[int](1))
                del $const98.18
                del $96binary_subscr.17
                $102binary_subscr.20 = getitem(value=points, index=$100build_tuple.19) :: float64
                del $100build_tuple.19
                $const108.23 = const(int, 1) :: Literal[int](1)
                $110build_tuple.24 = build_tuple(items=[Var(org_points_end, BRIO_2D_multidimarr.py:209), Var($const108.23, BRIO_2D_multidimarr.py:213)]) :: Tuple(int64, Literal[int](1))
                del $const108.23
                org_points[$110build_tuple.24] = $102binary_subscr.20 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
                del $110build_tuple.24
                del $102binary_subscr.20
214:             org_points_end += 1
                $const116.26 = const(int, 1) :: Literal[int](1)
                $118inplace_add.27 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=org_points_end, rhs=$const116.26, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const116.26
                org_points_end = $118inplace_add.27 :: int64
                del $118inplace_add.27
                jump 62
              label 124
215:
216:         sort_along_hilbert_curve(org_points, temp_points, hilbert_arr,
            del $phi64.2
            del $phi62.1
            del $62for_iter.4
            jump 126
          label 126
            $126load_global.1 = global(sort_along_hilbert_curve: CPUDispatcher(<function sort_along_hilbert_curve at 0x7f51d4d107a0>)) :: type(CPUDispatcher(<function sort_along_hilbert_curve at 0x7f51d4d107a0>))
217:                                  new_indices, org_points_end, p)
                                     $140call_function.8 = call $126load_global.1(org_points, temp_points, hilbert_arr, new_indices, org_points_end, p, func=$126load_global.1, args=[Var(org_points, BRIO_2D_multidimarr.py:206), Var(temp_points, BRIO_2D_multidimarr.py:206), Var(hilbert_arr, BRIO_2D_multidimarr.py:206), Var(new_indices, BRIO_2D_multidimarr.py:206), Var(org_points_end, BRIO_2D_multidimarr.py:209), Var(p, BRIO_2D_multidimarr.py:206)], kws=(), vararg=None) :: (array(float64, 2d, C), array(float64, 2d, C), array(int64, 2d, C), array(int64, 1d, C), int64, int64) -> none
                                     del $140call_function.8
                                     del $126load_global.1
218:
219:         for j in range(boundary_indices[i+1]-1, boundary_indices[i]-1, -1):
            jump 144
          label 144
            $146load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
            $const152.4 = const(int, 1) :: Literal[int](1)
            $154binary_add.5 = i + $const152.4 :: int64
            del $const152.4
            $156binary_subscr.6 = getitem(value=boundary_indices, index=$154binary_add.5) :: int64
            del $154binary_add.5
            $const158.7 = const(int, 1) :: Literal[int](1)
            $160binary_subtract.8 = $156binary_subscr.6 - $const158.7 :: int64
            del $const158.7
            del $156binary_subscr.6
            $166binary_subscr.11 = getitem(value=boundary_indices, index=i) :: int64
            del i
            $const168.12 = const(int, 1) :: Literal[int](1)
            $170binary_subtract.13 = $166binary_subscr.11 - $const168.12 :: int64
            del $const168.12
            del $166binary_subscr.11
            $const172.14 = const(int, -1) :: Literal[int](-1)
            $174call_function.15 = call $146load_global.1($160binary_subtract.8, $170binary_subtract.13, $const172.14, func=$146load_global.1, args=[Var($160binary_subtract.8, BRIO_2D_multidimarr.py:219), Var($170binary_subtract.13, BRIO_2D_multidimarr.py:219), Var($const172.14, BRIO_2D_multidimarr.py:219)], kws=(), vararg=None) :: (int64, int64, int64) -> range_state_int64
            del $const172.14
            del $170binary_subtract.13
            del $160binary_subtract.8
            del $146load_global.1
            $176get_iter.16 = getiter(value=$174call_function.15) :: range_iter_int64
            del $174call_function.15
            $phi178.1 = $176get_iter.16 :: range_iter_int64
            del $176get_iter.16
            jump 178
          label 178
            $178for_iter.2 = iternext(value=$phi178.1) :: pair<int64, bool>
            $178for_iter.3 = pair_first(value=$178for_iter.2) :: int64
            $178for_iter.4 = pair_second(value=$178for_iter.2) :: bool
            del $178for_iter.2
            $phi180.2 = $178for_iter.3 :: int64
            del $178for_iter.3
            branch $178for_iter.4, 180, 240
          label 180
            del $178for_iter.4
            j = $phi180.2 :: int64
            del $phi180.2
220:             new_points[j, 0] = temp_points[org_points_end-1, 0]
                $const186.5 = const(int, 1) :: Literal[int](1)
                $188binary_subtract.6 = org_points_end - $const186.5 :: int64
                del $const186.5
                $const190.7 = const(int, 0) :: Literal[int](0)
                $192build_tuple.8 = build_tuple(items=[Var($188binary_subtract.6, BRIO_2D_multidimarr.py:220), Var($const190.7, BRIO_2D_multidimarr.py:220)]) :: Tuple(int64, Literal[int](0))
                del $const190.7
                del $188binary_subtract.6
                $194binary_subscr.9 = getitem(value=temp_points, index=$192build_tuple.8) :: float64
                del $192build_tuple.8
                $const200.12 = const(int, 0) :: Literal[int](0)
                $202build_tuple.13 = build_tuple(items=[Var(j, BRIO_2D_multidimarr.py:211), Var($const200.12, BRIO_2D_multidimarr.py:220)]) :: Tuple(int64, Literal[int](0))
                del $const200.12
                new_points[$202build_tuple.13] = $194binary_subscr.9 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
                del $202build_tuple.13
                del $194binary_subscr.9
221:             new_points[j, 1] = temp_points[org_points_end-1, 1]
                $const210.16 = const(int, 1) :: Literal[int](1)
                $212binary_subtract.17 = org_points_end - $const210.16 :: int64
                del $const210.16
                $const214.18 = const(int, 1) :: Literal[int](1)
                $216build_tuple.19 = build_tuple(items=[Var($212binary_subtract.17, BRIO_2D_multidimarr.py:221), Var($const214.18, BRIO_2D_multidimarr.py:221)]) :: Tuple(int64, Literal[int](1))
                del $const214.18
                del $212binary_subtract.17
                $218binary_subscr.20 = getitem(value=temp_points, index=$216build_tuple.19) :: float64
                del $216build_tuple.19
                $const224.23 = const(int, 1) :: Literal[int](1)
                $226build_tuple.24 = build_tuple(items=[Var(j, BRIO_2D_multidimarr.py:211), Var($const224.23, BRIO_2D_multidimarr.py:221)]) :: Tuple(int64, Literal[int](1))
                del j
                del $const224.23
                new_points[$226build_tuple.24] = $218binary_subscr.20 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
                del $226build_tuple.24
                del $218binary_subscr.20
222:             org_points_end -= 1
                $const232.26 = const(int, 1) :: Literal[int](1)
                $234inplace_subtract.27 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=org_points_end, rhs=$const232.26, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const232.26
                org_points_end = $234inplace_subtract.27 :: int64
                del $234inplace_subtract.27
                jump 178
              label 240
                del org_points_end
                del $phi180.2
                del $phi178.1
                del $178for_iter.4
                jump 242
              label 242
                jump 30
              label 244
223:
224:     return
        del temp_points
        del rounds
        del points
        del p
        del org_points
        del new_points
        del new_indices
        del hilbert_arr
        del boundary_indices
        del $phi32.1
        del $phi30.0
        del $30for_iter.3
        jump 246
      label 246
        $const246.0 = const(NoneType, None) :: none
        $248return_value.1 = cast(value=$const246.0) :: none
        del $const246.0
        return $248return_value.1



Function name: initialize
in file: final_2D_robust_multidimarr.py
with signature: (array(float64, 2d, C), array(int64, 2d, C), array(int64, 2d, C)) -> int64
604: @njit
605: def initialize(points, vertices_ID, neighbour_ID):
606:
607:     N = len(points)
      label 0
        points = arg(0, name=points) :: array(float64, 2d, C)
        vertices_ID = arg(1, name=vertices_ID) :: array(int64, 2d, C)
        neighbour_ID = arg(2, name=neighbour_ID) :: array(int64, 2d, C)
        $2load_global.0 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $6call_function.2 = call $2load_global.0(points, func=$2load_global.0, args=[Var(points, final_2D_robust_multidimarr.py:607)], kws=(), vararg=None) :: (array(float64, 2d, C),) -> int64
        del $2load_global.0
        N = $6call_function.2 :: int64
        del $6call_function.2
608:
609:     a_x = points[0, 0]
        $const_0 = const(int, 0) :: Literal[int](0)
        $const_0.1 = const(int, 0) :: Literal[int](0)
        $const12.4 = build_tuple(items=[Var($const_0, final_2D_robust_multidimarr.py:609), Var($const_0.1, final_2D_robust_multidimarr.py:609)]) :: UniTuple(Literal[int](0) x 2)
        del $const_0.1
        del $const_0
        $14binary_subscr.5 = static_getitem(value=points, index=(0, 0), index_var=$const12.4) :: float64
        del $const12.4
        a_x = $14binary_subscr.5 :: float64
        del $14binary_subscr.5
610:     a_y = points[0, 1]
        $const_0.2 = const(int, 0) :: Literal[int](0)
        $const_1 = const(int, 1) :: Literal[int](1)
        $const20.7 = build_tuple(items=[Var($const_0.2, final_2D_robust_multidimarr.py:610), Var($const_1, final_2D_robust_multidimarr.py:610)]) :: Tuple(Literal[int](0), Literal[int](1))
        del $const_1
        del $const_0.2
        $22binary_subscr.8 = static_getitem(value=points, index=(0, 1), index_var=$const20.7) :: float64
        del $const20.7
        a_y = $22binary_subscr.8 :: float64
        del $22binary_subscr.8
611:     b_x = points[1, 0]
        $const_1.1 = const(int, 1) :: Literal[int](1)
        $const_0.3 = const(int, 0) :: Literal[int](0)
        $const28.10 = build_tuple(items=[Var($const_1.1, final_2D_robust_multidimarr.py:611), Var($const_0.3, final_2D_robust_multidimarr.py:611)]) :: Tuple(Literal[int](1), Literal[int](0))
        del $const_1.1
        del $const_0.3
        $30binary_subscr.11 = static_getitem(value=points, index=(1, 0), index_var=$const28.10) :: float64
        del $const28.10
        b_x = $30binary_subscr.11 :: float64
        del $30binary_subscr.11
612:     b_y = points[1, 1]
        $const_1.2 = const(int, 1) :: Literal[int](1)
        $const_1.3 = const(int, 1) :: Literal[int](1)
        $const36.13 = build_tuple(items=[Var($const_1.2, final_2D_robust_multidimarr.py:612), Var($const_1.3, final_2D_robust_multidimarr.py:612)]) :: UniTuple(Literal[int](1) x 2)
        del $const_1.3
        del $const_1.2
        $38binary_subscr.14 = static_getitem(value=points, index=(1, 1), index_var=$const36.13) :: float64
        del $const36.13
        b_y = $38binary_subscr.14 :: float64
        del $38binary_subscr.14
613:
614:     num_tri = np.int64(0)
        $42load_global.15 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $44load_method.16 = getattr(value=$42load_global.15, attr=int64) :: class(int64)
        del $42load_global.15
        $const46.17 = const(int, 0) :: Literal[int](0)
        $48call_method.18 = call $44load_method.16($const46.17, func=$44load_method.16, args=[Var($const46.17, final_2D_robust_multidimarr.py:614)], kws=(), vararg=None) :: (Literal[int](0),) -> int64
        del $const46.17
        del $44load_method.16
        num_tri = $48call_method.18 :: int64
        del $48call_method.18
615:
616:     idx = 2
        $const52.19 = const(int, 2) :: Literal[int](2)
        idx = $const52.19 :: int64
        del $const52.19
617:     while True:
        jump 56
      label 56
618:         p_x = points[idx, 0]
            jump 60
          label 60
            $const64.2 = const(int, 0) :: Literal[int](0)
            $66build_tuple.3 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const64.2, final_2D_robust_multidimarr.py:618)]) :: Tuple(int64, Literal[int](0))
            del $const64.2
            $68binary_subscr.4 = getitem(value=points, index=$66build_tuple.3) :: float64
            del $66build_tuple.3
            p_x = $68binary_subscr.4 :: float64
            del $68binary_subscr.4
619:         p_y = points[idx, 1]
            $const76.7 = const(int, 1) :: Literal[int](1)
            $78build_tuple.8 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const76.7, final_2D_robust_multidimarr.py:619)]) :: Tuple(int64, Literal[int](1))
            del $const76.7
            $80binary_subscr.9 = getitem(value=points, index=$78build_tuple.8) :: float64
            del $78build_tuple.8
            p_y = $80binary_subscr.9 :: float64
            del $80binary_subscr.9
620:         signed_area = (b_x-a_x)*(p_y-a_y)-(p_x-a_x)*(b_y-a_y)
            $88binary_subtract.12 = b_x - a_x :: float64
            $94binary_subtract.15 = p_y - a_y :: float64
            del p_y
            $96binary_multiply.16 = $88binary_subtract.12 * $94binary_subtract.15 :: float64
            del $94binary_subtract.15
            del $88binary_subtract.12
            $102binary_subtract.19 = p_x - a_x :: float64
            del p_x
            $108binary_subtract.22 = b_y - a_y :: float64
            $110binary_multiply.23 = $102binary_subtract.19 * $108binary_subtract.22 :: float64
            del $108binary_subtract.22
            del $102binary_subtract.19
            $112binary_subtract.24 = $96binary_multiply.16 - $110binary_multiply.23 :: float64
            del $96binary_multiply.16
            del $110binary_multiply.23
            signed_area = $112binary_subtract.24 :: float64
            del $112binary_subtract.24
621:         if signed_area > 0:
            $const118.26 = const(int, 0) :: Literal[int](0)
            $120compare_op.27 = signed_area > $const118.26 :: bool
            del $const118.26
            branch $120compare_op.27, 124, 196
622:             points[2, 0], points[idx, 0] = points[idx, 0], points[2, 0]
              label 124
                del signed_area
                del b_y
                del b_x
                del a_y
                del a_x
                del $120compare_op.27
                $const128.2 = const(int, 0) :: Literal[int](0)
                $130build_tuple.3 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const128.2, final_2D_robust_multidimarr.py:622)]) :: Tuple(int64, Literal[int](0))
                del $const128.2
                $132binary_subscr.4 = getitem(value=points, index=$130build_tuple.3) :: float64
                del $130build_tuple.3
                $const_2 = const(int, 2) :: Literal[int](2)
                $const_0.4 = const(int, 0) :: Literal[int](0)
                $const136.6 = build_tuple(items=[Var($const_2, final_2D_robust_multidimarr.py:622), Var($const_0.4, final_2D_robust_multidimarr.py:622)]) :: Tuple(Literal[int](2), Literal[int](0))
                del $const_2
                del $const_0.4
                $138binary_subscr.7 = static_getitem(value=points, index=(2, 0), index_var=$const136.6) :: float64
                del $const136.6
                $const_2.1 = const(int, 2) :: Literal[int](2)
                $const_0.5 = const(int, 0) :: Literal[int](0)
                $const144.9 = build_tuple(items=[Var($const_2.1, final_2D_robust_multidimarr.py:622), Var($const_0.5, final_2D_robust_multidimarr.py:622)]) :: Tuple(Literal[int](2), Literal[int](0))
                del $const_2.1
                del $const_0.5
                points[(2, 0)] = $132binary_subscr.4
                del $const144.9
                del $132binary_subscr.4
                $const152.12 = const(int, 0) :: Literal[int](0)
                $154build_tuple.13 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const152.12, final_2D_robust_multidimarr.py:622)]) :: Tuple(int64, Literal[int](0))
                del $const152.12
                points[$154build_tuple.13] = $138binary_subscr.7 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
                del $154build_tuple.13
                del $138binary_subscr.7
623:             points[2, 1], points[idx, 1] = points[idx, 1], points[2, 1]
                $const162.16 = const(int, 1) :: Literal[int](1)
                $164build_tuple.17 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const162.16, final_2D_robust_multidimarr.py:623)]) :: Tuple(int64, Literal[int](1))
                del $const162.16
                $166binary_subscr.18 = getitem(value=points, index=$164build_tuple.17) :: float64
                del $164build_tuple.17
                $const_2.2 = const(int, 2) :: Literal[int](2)
                $const_1.4 = const(int, 1) :: Literal[int](1)
                $const170.20 = build_tuple(items=[Var($const_2.2, final_2D_robust_multidimarr.py:623), Var($const_1.4, final_2D_robust_multidimarr.py:623)]) :: Tuple(Literal[int](2), Literal[int](1))
                del $const_2.2
                del $const_1.4
                $172binary_subscr.21 = static_getitem(value=points, index=(2, 1), index_var=$const170.20) :: float64
                del $const170.20
                $const_2.3 = const(int, 2) :: Literal[int](2)
                $const_1.5 = const(int, 1) :: Literal[int](1)
                $const178.23 = build_tuple(items=[Var($const_2.3, final_2D_robust_multidimarr.py:623), Var($const_1.5, final_2D_robust_multidimarr.py:623)]) :: Tuple(Literal[int](2), Literal[int](1))
                del $const_2.3
                del $const_1.5
                points[(2, 1)] = $166binary_subscr.18
                del $const178.23
                del $166binary_subscr.18
                $const186.26 = const(int, 1) :: Literal[int](1)
                $188build_tuple.27 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const186.26, final_2D_robust_multidimarr.py:623)]) :: Tuple(int64, Literal[int](1))
                del idx
                del $const186.26
                points[$188build_tuple.27] = $172binary_subscr.21 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
                del points
                del $188build_tuple.27
                del $172binary_subscr.21
624:             break
                jump 342
625:         elif signed_area < 0:
          label 196
            del $120compare_op.27
            $const198.1 = const(int, 0) :: Literal[int](0)
            $200compare_op.2 = signed_area < $const198.1 :: bool
            del signed_area
            del $const198.1
            branch $200compare_op.2, 206, 330
626:             points[2, 0], points[idx, 0] = points[idx, 0], points[2, 0]
              label 206
                del b_y
                del b_x
                del a_y
                del a_x
                del $200compare_op.2
                $const210.2 = const(int, 0) :: Literal[int](0)
                $212build_tuple.3 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const210.2, final_2D_robust_multidimarr.py:626)]) :: Tuple(int64, Literal[int](0))
                del $const210.2
                $214binary_subscr.4 = getitem(value=points, index=$212build_tuple.3) :: float64
                del $212build_tuple.3
                $const_2.4 = const(int, 2) :: Literal[int](2)
                $const_0.6 = const(int, 0) :: Literal[int](0)
                $const218.6 = build_tuple(items=[Var($const_2.4, final_2D_robust_multidimarr.py:626), Var($const_0.6, final_2D_robust_multidimarr.py:626)]) :: Tuple(Literal[int](2), Literal[int](0))
                del $const_2.4
                del $const_0.6
                $220binary_subscr.7 = static_getitem(value=points, index=(2, 0), index_var=$const218.6) :: float64
                del $const218.6
                $const_2.5 = const(int, 2) :: Literal[int](2)
                $const_0.7 = const(int, 0) :: Literal[int](0)
                $const226.9 = build_tuple(items=[Var($const_2.5, final_2D_robust_multidimarr.py:626), Var($const_0.7, final_2D_robust_multidimarr.py:626)]) :: Tuple(Literal[int](2), Literal[int](0))
                del $const_2.5
                del $const_0.7
                points[(2, 0)] = $214binary_subscr.4
                del $const226.9
                del $214binary_subscr.4
                $const234.12 = const(int, 0) :: Literal[int](0)
                $236build_tuple.13 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const234.12, final_2D_robust_multidimarr.py:626)]) :: Tuple(int64, Literal[int](0))
                del $const234.12
                points[$236build_tuple.13] = $220binary_subscr.7 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
                del $236build_tuple.13
                del $220binary_subscr.7
627:             points[2, 1], points[idx, 1] = points[idx, 1], points[2, 1]
                $const244.16 = const(int, 1) :: Literal[int](1)
                $246build_tuple.17 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const244.16, final_2D_robust_multidimarr.py:627)]) :: Tuple(int64, Literal[int](1))
                del $const244.16
                $248binary_subscr.18 = getitem(value=points, index=$246build_tuple.17) :: float64
                del $246build_tuple.17
                $const_2.6 = const(int, 2) :: Literal[int](2)
                $const_1.6 = const(int, 1) :: Literal[int](1)
                $const252.20 = build_tuple(items=[Var($const_2.6, final_2D_robust_multidimarr.py:627), Var($const_1.6, final_2D_robust_multidimarr.py:627)]) :: Tuple(Literal[int](2), Literal[int](1))
                del $const_2.6
                del $const_1.6
                $254binary_subscr.21 = static_getitem(value=points, index=(2, 1), index_var=$const252.20) :: float64
                del $const252.20
                $const_2.7 = const(int, 2) :: Literal[int](2)
                $const_1.7 = const(int, 1) :: Literal[int](1)
                $const260.23 = build_tuple(items=[Var($const_2.7, final_2D_robust_multidimarr.py:627), Var($const_1.7, final_2D_robust_multidimarr.py:627)]) :: Tuple(Literal[int](2), Literal[int](1))
                del $const_2.7
                del $const_1.7
                points[(2, 1)] = $248binary_subscr.18
                del $const260.23
                del $248binary_subscr.18
                $const268.26 = const(int, 1) :: Literal[int](1)
                $270build_tuple.27 = build_tuple(items=[Var(idx, final_2D_robust_multidimarr.py:616), Var($const268.26, final_2D_robust_multidimarr.py:627)]) :: Tuple(int64, Literal[int](1))
                del idx
                del $const268.26
                points[$270build_tuple.27] = $254binary_subscr.21 :: (array(float64, 2d, C), UniTuple(int64 x 2), float64) -> none
                del $270build_tuple.27
                del $254binary_subscr.21
628:             points[0, 0], points[1, 0] = points[1, 0], points[0, 0]
                $const_1.8 = const(int, 1) :: Literal[int](1)
                $const_0.8 = const(int, 0) :: Literal[int](0)
                $const276.29 = build_tuple(items=[Var($const_1.8, final_2D_robust_multidimarr.py:628), Var($const_0.8, final_2D_robust_multidimarr.py:628)]) :: Tuple(Literal[int](1), Literal[int](0))
                del $const_1.8
                del $const_0.8
                $278binary_subscr.30 = static_getitem(value=points, index=(1, 0), index_var=$const276.29) :: float64
                del $const276.29
                $const_0.9 = const(int, 0) :: Literal[int](0)
                $const_0.10 = const(int, 0) :: Literal[int](0)
                $const282.32 = build_tuple(items=[Var($const_0.9, final_2D_robust_multidimarr.py:628), Var($const_0.10, final_2D_robust_multidimarr.py:628)]) :: UniTuple(Literal[int](0) x 2)
                del $const_0.9
                del $const_0.10
                $284binary_subscr.33 = static_getitem(value=points, index=(0, 0), index_var=$const282.32) :: float64
                del $const282.32
                $const_0.11 = const(int, 0) :: Literal[int](0)
                $const_0.12 = const(int, 0) :: Literal[int](0)
                $const290.35 = build_tuple(items=[Var($const_0.11, final_2D_robust_multidimarr.py:628), Var($const_0.12, final_2D_robust_multidimarr.py:628)]) :: UniTuple(Literal[int](0) x 2)
                del $const_0.12
                del $const_0.11
                points[(0, 0)] = $278binary_subscr.30
                del $const290.35
                del $278binary_subscr.30
                $const_1.9 = const(int, 1) :: Literal[int](1)
                $const_0.13 = const(int, 0) :: Literal[int](0)
                $const296.37 = build_tuple(items=[Var($const_1.9, final_2D_robust_multidimarr.py:628), Var($const_0.13, final_2D_robust_multidimarr.py:628)]) :: Tuple(Literal[int](1), Literal[int](0))
                del $const_1.9
                del $const_0.13
                points[(1, 0)] = $284binary_subscr.33
                del $const296.37
                del $284binary_subscr.33
629:             points[0, 1], points[1, 1] = points[1, 1], points[0, 1]
                $const_1.10 = const(int, 1) :: Literal[int](1)
                $const_1.11 = const(int, 1) :: Literal[int](1)
                $const302.39 = build_tuple(items=[Var($const_1.10, final_2D_robust_multidimarr.py:629), Var($const_1.11, final_2D_robust_multidimarr.py:629)]) :: UniTuple(Literal[int](1) x 2)
                del $const_1.11
                del $const_1.10
                $304binary_subscr.40 = static_getitem(value=points, index=(1, 1), index_var=$const302.39) :: float64
                del $const302.39
                $const_0.14 = const(int, 0) :: Literal[int](0)
                $const_1.12 = const(int, 1) :: Literal[int](1)
                $const308.42 = build_tuple(items=[Var($const_0.14, final_2D_robust_multidimarr.py:629), Var($const_1.12, final_2D_robust_multidimarr.py:629)]) :: Tuple(Literal[int](0), Literal[int](1))
                del $const_1.12
                del $const_0.14
                $310binary_subscr.43 = static_getitem(value=points, index=(0, 1), index_var=$const308.42) :: float64
                del $const308.42
                $const_0.15 = const(int, 0) :: Literal[int](0)
                $const_1.13 = const(int, 1) :: Literal[int](1)
                $const316.45 = build_tuple(items=[Var($const_0.15, final_2D_robust_multidimarr.py:629), Var($const_1.13, final_2D_robust_multidimarr.py:629)]) :: Tuple(Literal[int](0), Literal[int](1))
                del $const_1.13
                del $const_0.15
                points[(0, 1)] = $304binary_subscr.40
                del $const316.45
                del $304binary_subscr.40
                $const_1.14 = const(int, 1) :: Literal[int](1)
                $const_1.15 = const(int, 1) :: Literal[int](1)
                $const322.47 = build_tuple(items=[Var($const_1.14, final_2D_robust_multidimarr.py:629), Var($const_1.15, final_2D_robust_multidimarr.py:629)]) :: UniTuple(Literal[int](1) x 2)
                del $const_1.15
                del $const_1.14
                points[(1, 1)] = $310binary_subscr.43
                del points
                del $const322.47
                del $310binary_subscr.43
630:             break
                jump 342
631:         else:
632:             idx += 1
              label 330
                del $200compare_op.2
                $const332.1 = const(int, 1) :: Literal[int](1)
                $334inplace_add.2 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=idx, rhs=$const332.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const332.1
                idx = $334inplace_add.2 :: int64
                del $334inplace_add.2
                jump 60
633:
634:     vertices_ID[0, 0] = 0 #
      label 342
        $const342.0 = const(int, 0) :: Literal[int](0)
        $const_0.16 = const(int, 0) :: Literal[int](0)
        $const_0.17 = const(int, 0) :: Literal[int](0)
        $const346.2 = build_tuple(items=[Var($const_0.16, final_2D_robust_multidimarr.py:634), Var($const_0.17, final_2D_robust_multidimarr.py:634)]) :: UniTuple(Literal[int](0) x 2)
        del $const_0.17
        del $const_0.16
        vertices_ID[(0, 0)] = $const342.0
        del $const346.2
        del $const342.0
635:     vertices_ID[0, 1] = 1 # ---> 0th triangle [real]
        $const350.3 = const(int, 1) :: Literal[int](1)
        $const_0.18 = const(int, 0) :: Literal[int](0)
        $const_1.16 = const(int, 1) :: Literal[int](1)
        $const354.5 = build_tuple(items=[Var($const_0.18, final_2D_robust_multidimarr.py:635), Var($const_1.16, final_2D_robust_multidimarr.py:635)]) :: Tuple(Literal[int](0), Literal[int](1))
        del $const_1.16
        del $const_0.18
        vertices_ID[(0, 1)] = $const350.3
        del $const354.5
        del $const350.3
636:     vertices_ID[0, 2] = 2 #
        $const358.6 = const(int, 2) :: Literal[int](2)
        $const_0.19 = const(int, 0) :: Literal[int](0)
        $const_2.8 = const(int, 2) :: Literal[int](2)
        $const362.8 = build_tuple(items=[Var($const_0.19, final_2D_robust_multidimarr.py:636), Var($const_2.8, final_2D_robust_multidimarr.py:636)]) :: Tuple(Literal[int](0), Literal[int](2))
        del $const_2.8
        del $const_0.19
        vertices_ID[(0, 2)] = $const358.6
        del $const362.8
        del $const358.6
637:
638:     vertices_ID[1, 0] = 0 #
        $const366.9 = const(int, 0) :: Literal[int](0)
        $const_1.17 = const(int, 1) :: Literal[int](1)
        $const_0.20 = const(int, 0) :: Literal[int](0)
        $const370.11 = build_tuple(items=[Var($const_1.17, final_2D_robust_multidimarr.py:638), Var($const_0.20, final_2D_robust_multidimarr.py:638)]) :: Tuple(Literal[int](1), Literal[int](0))
        del $const_1.17
        del $const_0.20
        vertices_ID[(1, 0)] = $const366.9
        del $const370.11
        del $const366.9
639:     vertices_ID[1, 1] = N # ---> 1st triangle [ghost]
        $const_1.18 = const(int, 1) :: Literal[int](1)
        $const_1.19 = const(int, 1) :: Literal[int](1)
        $const378.14 = build_tuple(items=[Var($const_1.18, final_2D_robust_multidimarr.py:639), Var($const_1.19, final_2D_robust_multidimarr.py:639)]) :: UniTuple(Literal[int](1) x 2)
        del $const_1.19
        del $const_1.18
        vertices_ID[(1, 1)] = N
        del $const378.14
640:     vertices_ID[1, 2] = 1 #
        $const382.15 = const(int, 1) :: Literal[int](1)
        $const_1.20 = const(int, 1) :: Literal[int](1)
        $const_2.9 = const(int, 2) :: Literal[int](2)
        $const386.17 = build_tuple(items=[Var($const_1.20, final_2D_robust_multidimarr.py:640), Var($const_2.9, final_2D_robust_multidimarr.py:640)]) :: Tuple(Literal[int](1), Literal[int](2))
        del $const_2.9
        del $const_1.20
        vertices_ID[(1, 2)] = $const382.15
        del $const386.17
        del $const382.15
641:
642:     vertices_ID[2, 0] = 1 #
        $const390.18 = const(int, 1) :: Literal[int](1)
        $const_2.10 = const(int, 2) :: Literal[int](2)
        $const_0.21 = const(int, 0) :: Literal[int](0)
        $const394.20 = build_tuple(items=[Var($const_2.10, final_2D_robust_multidimarr.py:642), Var($const_0.21, final_2D_robust_multidimarr.py:642)]) :: Tuple(Literal[int](2), Literal[int](0))
        del $const_2.10
        del $const_0.21
        vertices_ID[(2, 0)] = $const390.18
        del $const394.20
        del $const390.18
643:     vertices_ID[2, 1] = N # ---> 2nd triangle [ghost]
        $const_2.11 = const(int, 2) :: Literal[int](2)
        $const_1.21 = const(int, 1) :: Literal[int](1)
        $const402.23 = build_tuple(items=[Var($const_2.11, final_2D_robust_multidimarr.py:643), Var($const_1.21, final_2D_robust_multidimarr.py:643)]) :: Tuple(Literal[int](2), Literal[int](1))
        del $const_2.11
        del $const_1.21
        vertices_ID[(2, 1)] = N
        del $const402.23
644:     vertices_ID[2, 2] = 2 #
        $const406.24 = const(int, 2) :: Literal[int](2)
        $const_2.12 = const(int, 2) :: Literal[int](2)
        $const_2.13 = const(int, 2) :: Literal[int](2)
        $const410.26 = build_tuple(items=[Var($const_2.12, final_2D_robust_multidimarr.py:644), Var($const_2.13, final_2D_robust_multidimarr.py:644)]) :: UniTuple(Literal[int](2) x 2)
        del $const_2.13
        del $const_2.12
        vertices_ID[(2, 2)] = $const406.24
        del $const410.26
        del $const406.24
645:
646:     vertices_ID[3, 0] = 2 #
        $const414.27 = const(int, 2) :: Literal[int](2)
        $const_3 = const(int, 3) :: Literal[int](3)
        $const_0.22 = const(int, 0) :: Literal[int](0)
        $const418.29 = build_tuple(items=[Var($const_3, final_2D_robust_multidimarr.py:646), Var($const_0.22, final_2D_robust_multidimarr.py:646)]) :: Tuple(Literal[int](3), Literal[int](0))
        del $const_3
        del $const_0.22
        vertices_ID[(3, 0)] = $const414.27
        del $const418.29
        del $const414.27
647:     vertices_ID[3, 1] = N # ---> 3rd triangle [ghost]
        $const_3.1 = const(int, 3) :: Literal[int](3)
        $const_1.22 = const(int, 1) :: Literal[int](1)
        $const426.32 = build_tuple(items=[Var($const_3.1, final_2D_robust_multidimarr.py:647), Var($const_1.22, final_2D_robust_multidimarr.py:647)]) :: Tuple(Literal[int](3), Literal[int](1))
        del $const_3.1
        del $const_1.22
        vertices_ID[(3, 1)] = N
        del N
        del $const426.32
648:     vertices_ID[3, 2] = 0 #
        $const430.33 = const(int, 0) :: Literal[int](0)
        $const_3.2 = const(int, 3) :: Literal[int](3)
        $const_2.14 = const(int, 2) :: Literal[int](2)
        $const434.35 = build_tuple(items=[Var($const_3.2, final_2D_robust_multidimarr.py:648), Var($const_2.14, final_2D_robust_multidimarr.py:648)]) :: Tuple(Literal[int](3), Literal[int](2))
        del $const_3.2
        del $const_2.14
        vertices_ID[(3, 2)] = $const430.33
        del vertices_ID
        del $const434.35
        del $const430.33
649:
650:     neighbour_ID[0, 0] = 3*2+1 #
        $const438.36 = const(int, 7) :: Literal[int](7)
        $const_0.23 = const(int, 0) :: Literal[int](0)
        $const_0.24 = const(int, 0) :: Literal[int](0)
        $const442.38 = build_tuple(items=[Var($const_0.23, final_2D_robust_multidimarr.py:650), Var($const_0.24, final_2D_robust_multidimarr.py:650)]) :: UniTuple(Literal[int](0) x 2)
        del $const_0.24
        del $const_0.23
        neighbour_ID[(0, 0)] = $const438.36
        del $const442.38
        del $const438.36
651:     neighbour_ID[0, 1] = 3*3+1 # ---> 0th triangle [real]
        $const446.39 = const(int, 10) :: Literal[int](10)
        $const_0.25 = const(int, 0) :: Literal[int](0)
        $const_1.23 = const(int, 1) :: Literal[int](1)
        $const450.41 = build_tuple(items=[Var($const_0.25, final_2D_robust_multidimarr.py:651), Var($const_1.23, final_2D_robust_multidimarr.py:651)]) :: Tuple(Literal[int](0), Literal[int](1))
        del $const_1.23
        del $const_0.25
        neighbour_ID[(0, 1)] = $const446.39
        del $const450.41
        del $const446.39
652:     neighbour_ID[0, 2] = 3*1+1 #
        $const454.42 = const(int, 4) :: Literal[int](4)
        $const_0.26 = const(int, 0) :: Literal[int](0)
        $const_2.15 = const(int, 2) :: Literal[int](2)
        $const458.44 = build_tuple(items=[Var($const_0.26, final_2D_robust_multidimarr.py:652), Var($const_2.15, final_2D_robust_multidimarr.py:652)]) :: Tuple(Literal[int](0), Literal[int](2))
        del $const_2.15
        del $const_0.26
        neighbour_ID[(0, 2)] = $const454.42
        del $const458.44
        del $const454.42
653:
654:     neighbour_ID[1, 0] = 3*2+2 #
        $const462.45 = const(int, 8) :: Literal[int](8)
        $const_1.24 = const(int, 1) :: Literal[int](1)
        $const_0.27 = const(int, 0) :: Literal[int](0)
        $const466.47 = build_tuple(items=[Var($const_1.24, final_2D_robust_multidimarr.py:654), Var($const_0.27, final_2D_robust_multidimarr.py:654)]) :: Tuple(Literal[int](1), Literal[int](0))
        del $const_1.24
        del $const_0.27
        neighbour_ID[(1, 0)] = $const462.45
        del $const466.47
        del $const462.45
655:     neighbour_ID[1, 1] = 3*0+2 # ---> 1st triangle [ghost]
        $const470.48 = const(int, 2) :: Literal[int](2)
        $const_1.25 = const(int, 1) :: Literal[int](1)
        $const_1.26 = const(int, 1) :: Literal[int](1)
        $const474.50 = build_tuple(items=[Var($const_1.25, final_2D_robust_multidimarr.py:655), Var($const_1.26, final_2D_robust_multidimarr.py:655)]) :: UniTuple(Literal[int](1) x 2)
        del $const_1.26
        del $const_1.25
        neighbour_ID[(1, 1)] = $const470.48
        del $const474.50
        del $const470.48
656:     neighbour_ID[1, 2] = 3*3+0 #
        $const478.51 = const(int, 9) :: Literal[int](9)
        $const_1.27 = const(int, 1) :: Literal[int](1)
        $const_2.16 = const(int, 2) :: Literal[int](2)
        $const482.53 = build_tuple(items=[Var($const_1.27, final_2D_robust_multidimarr.py:656), Var($const_2.16, final_2D_robust_multidimarr.py:656)]) :: Tuple(Literal[int](1), Literal[int](2))
        del $const_2.16
        del $const_1.27
        neighbour_ID[(1, 2)] = $const478.51
        del $const482.53
        del $const478.51
657:
658:     neighbour_ID[2, 0] = 3*3+2 #
        $const486.54 = const(int, 11) :: Literal[int](11)
        $const_2.17 = const(int, 2) :: Literal[int](2)
        $const_0.28 = const(int, 0) :: Literal[int](0)
        $const490.56 = build_tuple(items=[Var($const_2.17, final_2D_robust_multidimarr.py:658), Var($const_0.28, final_2D_robust_multidimarr.py:658)]) :: Tuple(Literal[int](2), Literal[int](0))
        del $const_2.17
        del $const_0.28
        neighbour_ID[(2, 0)] = $const486.54
        del $const490.56
        del $const486.54
659:     neighbour_ID[2, 1] = 3*0+0 # ---> 2nd triangle [ghost]
        $const494.57 = const(int, 0) :: Literal[int](0)
        $const_2.18 = const(int, 2) :: Literal[int](2)
        $const_1.28 = const(int, 1) :: Literal[int](1)
        $const498.59 = build_tuple(items=[Var($const_2.18, final_2D_robust_multidimarr.py:659), Var($const_1.28, final_2D_robust_multidimarr.py:659)]) :: Tuple(Literal[int](2), Literal[int](1))
        del $const_2.18
        del $const_1.28
        neighbour_ID[(2, 1)] = $const494.57
        del $const498.59
        del $const494.57
660:     neighbour_ID[2, 2] = 3*1+0 #
        $const502.60 = const(int, 3) :: Literal[int](3)
        $const_2.19 = const(int, 2) :: Literal[int](2)
        $const_2.20 = const(int, 2) :: Literal[int](2)
        $const506.62 = build_tuple(items=[Var($const_2.19, final_2D_robust_multidimarr.py:660), Var($const_2.20, final_2D_robust_multidimarr.py:660)]) :: UniTuple(Literal[int](2) x 2)
        del $const_2.20
        del $const_2.19
        neighbour_ID[(2, 2)] = $const502.60
        del $const506.62
        del $const502.60
661:
662:     neighbour_ID[3, 0] = 3*1+2 #
        $const510.63 = const(int, 5) :: Literal[int](5)
        $const_3.3 = const(int, 3) :: Literal[int](3)
        $const_0.29 = const(int, 0) :: Literal[int](0)
        $const514.65 = build_tuple(items=[Var($const_3.3, final_2D_robust_multidimarr.py:662), Var($const_0.29, final_2D_robust_multidimarr.py:662)]) :: Tuple(Literal[int](3), Literal[int](0))
        del $const_3.3
        del $const_0.29
        neighbour_ID[(3, 0)] = $const510.63
        del $const514.65
        del $const510.63
663:     neighbour_ID[3, 1] = 3*0+1 # ---> 3rd triangle [ghost]
        $const518.66 = const(int, 1) :: Literal[int](1)
        $const_3.4 = const(int, 3) :: Literal[int](3)
        $const_1.29 = const(int, 1) :: Literal[int](1)
        $const522.68 = build_tuple(items=[Var($const_3.4, final_2D_robust_multidimarr.py:663), Var($const_1.29, final_2D_robust_multidimarr.py:663)]) :: Tuple(Literal[int](3), Literal[int](1))
        del $const_3.4
        del $const_1.29
        neighbour_ID[(3, 1)] = $const518.66
        del $const522.68
        del $const518.66
664:     neighbour_ID[3, 2] = 3*2+0 #
        $const526.69 = const(int, 6) :: Literal[int](6)
        $const_3.5 = const(int, 3) :: Literal[int](3)
        $const_2.21 = const(int, 2) :: Literal[int](2)
        $const530.71 = build_tuple(items=[Var($const_3.5, final_2D_robust_multidimarr.py:664), Var($const_2.21, final_2D_robust_multidimarr.py:664)]) :: Tuple(Literal[int](3), Literal[int](2))
        del $const_3.5
        del $const_2.21
        neighbour_ID[(3, 2)] = $const526.69
        del neighbour_ID
        del $const530.71
        del $const526.69
665:
666:     num_tri += 4
        $const536.73 = const(int, 4) :: Literal[int](4)
        $538inplace_add.74 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=num_tri, rhs=$const536.73, static_lhs=Undefined, static_rhs=Undefined) :: int64
        del num_tri
        del $const536.73
        num_tri.1 = $538inplace_add.74 :: int64
        del $538inplace_add.74
667:
668:     return num_tri
        $544return_value.76 = cast(value=num_tri.1) :: int64
        del num_tri.1
        return $544return_value.76



Function name: exactinit2d
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (array(float64, 2d, C),) -> UniTuple(float64 x 10)
311: @njit
312: def exactinit2d(points):
313:
314:     every_other = True
      label 0
        points = arg(0, name=points) :: array(float64, 2d, C)
        $const2.0 = const(bool, True) :: bool
        every_other = $const2.0 :: bool
        del $const2.0
315:     half = np.float64(0.5)
        $6load_global.1 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $8load_method.2 = getattr(value=$6load_global.1, attr=float64) :: class(float64)
        del $6load_global.1
        $const10.3 = const(float, 0.5) :: float64
        $12call_method.4 = call $8load_method.2($const10.3, func=$8load_method.2, args=[Var($const10.3, adaptive_predicates.py:315)], kws=(), vararg=None) :: (float64,) -> float64
        del $const10.3
        del $8load_method.2
        half = $12call_method.4 :: float64
        del $12call_method.4
316:     epsilon = np.float64(1.0)
        $16load_global.5 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $18load_method.6 = getattr(value=$16load_global.5, attr=float64) :: class(float64)
        del $16load_global.5
        $const20.7 = const(float, 1.0) :: float64
        $22call_method.8 = call $18load_method.6($const20.7, func=$18load_method.6, args=[Var($const20.7, adaptive_predicates.py:316)], kws=(), vararg=None) :: (float64,) -> float64
        del $const20.7
        del $18load_method.6
        epsilon = $22call_method.8 :: float64
        del $22call_method.8
317:     splitter = np.float64(1.0)
        $26load_global.9 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $28load_method.10 = getattr(value=$26load_global.9, attr=float64) :: class(float64)
        del $26load_global.9
        $const30.11 = const(float, 1.0) :: float64
        $32call_method.12 = call $28load_method.10($const30.11, func=$28load_method.10, args=[Var($const30.11, adaptive_predicates.py:317)], kws=(), vararg=None) :: (float64,) -> float64
        del $const30.11
        del $28load_method.10
        splitter = $32call_method.12 :: float64
        del $32call_method.12
318:     one = np.float64(1.0)
        $36load_global.13 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $38load_method.14 = getattr(value=$36load_global.13, attr=float64) :: class(float64)
        del $36load_global.13
        $const40.15 = const(float, 1.0) :: float64
        $42call_method.16 = call $38load_method.14($const40.15, func=$38load_method.14, args=[Var($const40.15, adaptive_predicates.py:318)], kws=(), vararg=None) :: (float64,) -> float64
        del $const40.15
        del $38load_method.14
        one = $42call_method.16 :: float64
        del $42call_method.16
319:     two = np.float64(2.0)
        $46load_global.17 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $48load_method.18 = getattr(value=$46load_global.17, attr=float64) :: class(float64)
        del $46load_global.17
        $const50.19 = const(float, 2.0) :: float64
        $52call_method.20 = call $48load_method.18($const50.19, func=$48load_method.18, args=[Var($const50.19, adaptive_predicates.py:319)], kws=(), vararg=None) :: (float64,) -> float64
        del $const50.19
        del $48load_method.18
        two = $52call_method.20 :: float64
        del $52call_method.20
320:     while True:
        jump 56
      label 56
321:         epsilon *= half
            jump 58
          label 58
            $62inplace_multiply.2 = inplace_binop(fn=<built-in function imul>, immutable_fn=<built-in function mul>, lhs=epsilon, rhs=half, static_lhs=Undefined, static_rhs=Undefined) :: float64
            epsilon = $62inplace_multiply.2 :: float64
            del $62inplace_multiply.2
322:         if every_other:
            branch every_other, 70, 78
323:           splitter *= two
            label 70
              $74inplace_multiply.2 = inplace_binop(fn=<built-in function imul>, immutable_fn=<built-in function mul>, lhs=splitter, rhs=two, static_lhs=Undefined, static_rhs=Undefined) :: float64
              splitter = $74inplace_multiply.2 :: float64
              del $74inplace_multiply.2
324:         every_other = not every_other
            jump 78
          label 78
            $80unary_not.1 = unary(fn=<built-in function not_>, value=every_other) :: bool
            every_other = $80unary_not.1 :: bool
            del $80unary_not.1
325:         if one + epsilon != one:
            $88binary_add.4 = one + epsilon :: float64
            $92compare_op.6 = $88binary_add.4 != one :: bool
            del $88binary_add.4
            branch $92compare_op.6, 96, 98
326:             pass
              label 96
                del $92compare_op.6
                jump 58
327:         else:
328:             break
              label 98
                del two
                del half
                del every_other
                del $92compare_op.6
                jump 104
329:     splitter += one
      label 104
        $108inplace_add.2 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=splitter, rhs=one, static_lhs=Undefined, static_rhs=Undefined) :: float64
        del splitter
        del one
        splitter.1 = $108inplace_add.2 :: float64
        del $108inplace_add.2
330:
331:     xmin = np.min(points[:, 0])
        $112load_global.3 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $114load_method.4 = getattr(value=$112load_global.3, attr=min) :: Function(<function amin at 0x7f51e4bc09e0>)
        del $112load_global.3
        $const118.6 = const(NoneType, None) :: none
        $const120.7 = const(NoneType, None) :: none
        $122build_slice.8 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $122build_slice.9 = call $122build_slice.8($const118.6, $const120.7, func=$122build_slice.8, args=(Var($const118.6, adaptive_predicates.py:331), Var($const120.7, adaptive_predicates.py:331)), kws=(), vararg=None) :: (none, none) -> slice<a:b>
        del $const120.7
        del $const118.6
        del $122build_slice.8
        $const124.10 = const(int, 0) :: Literal[int](0)
        $126build_tuple.11 = build_tuple(items=[Var($122build_slice.9, adaptive_predicates.py:331), Var($const124.10, adaptive_predicates.py:331)]) :: Tuple(slice<a:b>, Literal[int](0))
        del $const124.10
        del $122build_slice.9
        $128binary_subscr.12 = static_getitem(value=points, index=(slice(None, None, None), 0), index_var=$126build_tuple.11) :: array(float64, 1d, A)
        del $126build_tuple.11
        $130call_method.13 = call $114load_method.4($128binary_subscr.12, func=$114load_method.4, args=[Var($128binary_subscr.12, adaptive_predicates.py:331)], kws=(), vararg=None) :: (array(float64, 1d, A),) -> float64
        del $128binary_subscr.12
        del $114load_method.4
        xmin = $130call_method.13 :: float64
        del $130call_method.13
332:     ymin = np.min(points[:, 1])
        $134load_global.14 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $136load_method.15 = getattr(value=$134load_global.14, attr=min) :: Function(<function amin at 0x7f51e4bc09e0>)
        del $134load_global.14
        $const140.17 = const(NoneType, None) :: none
        $const142.18 = const(NoneType, None) :: none
        $144build_slice.19 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $144build_slice.20 = call $144build_slice.19($const140.17, $const142.18, func=$144build_slice.19, args=(Var($const140.17, adaptive_predicates.py:332), Var($const142.18, adaptive_predicates.py:332)), kws=(), vararg=None) :: (none, none) -> slice<a:b>
        del $const142.18
        del $const140.17
        del $144build_slice.19
        $const146.21 = const(int, 1) :: Literal[int](1)
        $148build_tuple.22 = build_tuple(items=[Var($144build_slice.20, adaptive_predicates.py:332), Var($const146.21, adaptive_predicates.py:332)]) :: Tuple(slice<a:b>, Literal[int](1))
        del $const146.21
        del $144build_slice.20
        $150binary_subscr.23 = static_getitem(value=points, index=(slice(None, None, None), 1), index_var=$148build_tuple.22) :: array(float64, 1d, A)
        del $148build_tuple.22
        $152call_method.24 = call $136load_method.15($150binary_subscr.23, func=$136load_method.15, args=[Var($150binary_subscr.23, adaptive_predicates.py:332)], kws=(), vararg=None) :: (array(float64, 1d, A),) -> float64
        del $150binary_subscr.23
        del $136load_method.15
        ymin = $152call_method.24 :: float64
        del $152call_method.24
333:     xmax = np.max(points[:, 0])
        $156load_global.25 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $158load_method.26 = getattr(value=$156load_global.25, attr=max) :: Function(<function amax at 0x7f51e4bc07a0>)
        del $156load_global.25
        $const162.28 = const(NoneType, None) :: none
        $const164.29 = const(NoneType, None) :: none
        $166build_slice.30 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $166build_slice.31 = call $166build_slice.30($const162.28, $const164.29, func=$166build_slice.30, args=(Var($const162.28, adaptive_predicates.py:333), Var($const164.29, adaptive_predicates.py:333)), kws=(), vararg=None) :: (none, none) -> slice<a:b>
        del $const164.29
        del $const162.28
        del $166build_slice.30
        $const168.32 = const(int, 0) :: Literal[int](0)
        $170build_tuple.33 = build_tuple(items=[Var($166build_slice.31, adaptive_predicates.py:333), Var($const168.32, adaptive_predicates.py:333)]) :: Tuple(slice<a:b>, Literal[int](0))
        del $const168.32
        del $166build_slice.31
        $172binary_subscr.34 = static_getitem(value=points, index=(slice(None, None, None), 0), index_var=$170build_tuple.33) :: array(float64, 1d, A)
        del $170build_tuple.33
        $174call_method.35 = call $158load_method.26($172binary_subscr.34, func=$158load_method.26, args=[Var($172binary_subscr.34, adaptive_predicates.py:333)], kws=(), vararg=None) :: (array(float64, 1d, A),) -> float64
        del $172binary_subscr.34
        del $158load_method.26
        xmax = $174call_method.35 :: float64
        del $174call_method.35
334:     ymax = np.max(points[:, 1])
        $178load_global.36 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $180load_method.37 = getattr(value=$178load_global.36, attr=max) :: Function(<function amax at 0x7f51e4bc07a0>)
        del $178load_global.36
        $const184.39 = const(NoneType, None) :: none
        $const186.40 = const(NoneType, None) :: none
        $188build_slice.41 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $188build_slice.42 = call $188build_slice.41($const184.39, $const186.40, func=$188build_slice.41, args=(Var($const184.39, adaptive_predicates.py:334), Var($const186.40, adaptive_predicates.py:334)), kws=(), vararg=None) :: (none, none) -> slice<a:b>
        del $const186.40
        del $const184.39
        del $188build_slice.41
        $const190.43 = const(int, 1) :: Literal[int](1)
        $192build_tuple.44 = build_tuple(items=[Var($188build_slice.42, adaptive_predicates.py:334), Var($const190.43, adaptive_predicates.py:334)]) :: Tuple(slice<a:b>, Literal[int](1))
        del $const190.43
        del $188build_slice.42
        $194binary_subscr.45 = static_getitem(value=points, index=(slice(None, None, None), 1), index_var=$192build_tuple.44) :: array(float64, 1d, A)
        del points
        del $192build_tuple.44
        $196call_method.46 = call $180load_method.37($194binary_subscr.45, func=$180load_method.37, args=[Var($194binary_subscr.45, adaptive_predicates.py:334)], kws=(), vararg=None) :: (array(float64, 1d, A),) -> float64
        del $194binary_subscr.45
        del $180load_method.37
        ymax = $196call_method.46 :: float64
        del $196call_method.46
335:     b = max(xmax-xmin, ymax-ymin)
        $200load_global.47 = global(max: <built-in function max>) :: Function(<built-in function max>)
        $206binary_subtract.50 = xmax - xmin :: float64
        del xmin
        del xmax
        $212binary_subtract.53 = ymax - ymin :: float64
        del ymin
        del ymax
        $214call_function.54 = call $200load_global.47($206binary_subtract.50, $212binary_subtract.53, func=$200load_global.47, args=[Var($206binary_subtract.50, adaptive_predicates.py:335), Var($212binary_subtract.53, adaptive_predicates.py:335)], kws=(), vararg=None) :: (float64, float64) -> float64
        del $212binary_subtract.53
        del $206binary_subtract.50
        del $200load_global.47
        b = $214call_function.54 :: float64
        del $214call_function.54
336:
337:     # Error bounds for orientation and incircle tests.
338:     resulterrbound = (3.0 + 8.0 * epsilon) * epsilon
        $const218.55 = const(float, 3.0) :: float64
        $const220.56 = const(float, 8.0) :: float64
        $224binary_multiply.58 = $const220.56 * epsilon :: float64
        del $const220.56
        $226binary_add.59 = $const218.55 + $224binary_multiply.58 :: float64
        del $const218.55
        del $224binary_multiply.58
        $230binary_multiply.61 = $226binary_add.59 * epsilon :: float64
        del $226binary_add.59
        resulterrbound = $230binary_multiply.61 :: float64
        del $230binary_multiply.61
339:     ccwerrboundA = (3.0 + 16.0 * epsilon) * epsilon
        $const234.62 = const(float, 3.0) :: float64
        $const236.63 = const(float, 16.0) :: float64
        $240binary_multiply.65 = $const236.63 * epsilon :: float64
        del $const236.63
        $242binary_add.66 = $const234.62 + $240binary_multiply.65 :: float64
        del $const234.62
        del $240binary_multiply.65
        $246binary_multiply.68 = $242binary_add.66 * epsilon :: float64
        del $242binary_add.66
        ccwerrboundA = $246binary_multiply.68 :: float64
        del $246binary_multiply.68
340:     ccwerrboundB = (2.0 + 12.0 * epsilon) * epsilon
        $const250.69 = const(float, 2.0) :: float64
        $const252.70 = const(float, 12.0) :: float64
        $256binary_multiply.72 = $const252.70 * epsilon :: float64
        del $const252.70
        $258binary_add.73 = $const250.69 + $256binary_multiply.72 :: float64
        del $const250.69
        del $256binary_multiply.72
        $262binary_multiply.75 = $258binary_add.73 * epsilon :: float64
        del $258binary_add.73
        ccwerrboundB = $262binary_multiply.75 :: float64
        del $262binary_multiply.75
341:     ccwerrboundC = (9.0 + 64.0 * epsilon) * epsilon * epsilon
        $const266.76 = const(float, 9.0) :: float64
        $const268.77 = const(float, 64.0) :: float64
        $272binary_multiply.79 = $const268.77 * epsilon :: float64
        del $const268.77
        $274binary_add.80 = $const266.76 + $272binary_multiply.79 :: float64
        del $const266.76
        del $272binary_multiply.79
        $278binary_multiply.82 = $274binary_add.80 * epsilon :: float64
        del $274binary_add.80
        $282binary_multiply.84 = $278binary_multiply.82 * epsilon :: float64
        del $278binary_multiply.82
        ccwerrboundC = $282binary_multiply.84 :: float64
        del $282binary_multiply.84
342:     iccerrboundA = (10.0 + 96.0 * epsilon) * epsilon
        $const286.85 = const(float, 10.0) :: float64
        $const288.86 = const(float, 96.0) :: float64
        $292binary_multiply.88 = $const288.86 * epsilon :: float64
        del $const288.86
        $294binary_add.89 = $const286.85 + $292binary_multiply.88 :: float64
        del $const286.85
        del $292binary_multiply.88
        $298binary_multiply.91 = $294binary_add.89 * epsilon :: float64
        del $294binary_add.89
        iccerrboundA = $298binary_multiply.91 :: float64
        del $298binary_multiply.91
343:     iccerrboundB = (4.0 + 48.0 * epsilon) * epsilon
        $const302.92 = const(float, 4.0) :: float64
        $const304.93 = const(float, 48.0) :: float64
        $308binary_multiply.95 = $const304.93 * epsilon :: float64
        del $const304.93
        $310binary_add.96 = $const302.92 + $308binary_multiply.95 :: float64
        del $const302.92
        del $308binary_multiply.95
        $314binary_multiply.98 = $310binary_add.96 * epsilon :: float64
        del $310binary_add.96
        iccerrboundB = $314binary_multiply.98 :: float64
        del $314binary_multiply.98
344:     iccerrboundC = (44.0 + 576.0 * epsilon) * epsilon * epsilon
        $const318.99 = const(float, 44.0) :: float64
        $const320.100 = const(float, 576.0) :: float64
        $324binary_multiply.102 = $const320.100 * epsilon :: float64
        del $const320.100
        $326binary_add.103 = $const318.99 + $324binary_multiply.102 :: float64
        del $const318.99
        del $324binary_multiply.102
        $330binary_multiply.105 = $326binary_add.103 * epsilon :: float64
        del $326binary_add.103
        $334binary_multiply.107 = $330binary_multiply.105 * epsilon :: float64
        del $330binary_multiply.105
        iccerrboundC = $334binary_multiply.107 :: float64
        del $334binary_multiply.107
345:     static_filter_o2d = 32 * epsilon * b * b
        $const338.108 = const(int, 32) :: Literal[int](32)
        $342binary_multiply.110 = $const338.108 * epsilon :: float64
        del $const338.108
        $346binary_multiply.112 = $342binary_multiply.110 * b :: float64
        del $342binary_multiply.110
        $350binary_multiply.114 = $346binary_multiply.112 * b :: float64
        del $346binary_multiply.112
        static_filter_o2d = $350binary_multiply.114 :: float64
        del $350binary_multiply.114
346:     static_filter_i2d = 1984 * epsilon * b * b * b
        $const354.115 = const(int, 1984) :: Literal[int](1984)
        $358binary_multiply.117 = $const354.115 * epsilon :: float64
        del epsilon
        del $const354.115
        $362binary_multiply.119 = $358binary_multiply.117 * b :: float64
        del $358binary_multiply.117
        $366binary_multiply.121 = $362binary_multiply.119 * b :: float64
        del $362binary_multiply.119
        $370binary_multiply.123 = $366binary_multiply.121 * b :: float64
        del b
        del $366binary_multiply.121
        static_filter_i2d = $370binary_multiply.123 :: float64
        del $370binary_multiply.123
347:
348:     return resulterrbound, ccwerrboundA, ccwerrboundB, ccwerrboundC, \
349:            iccerrboundA, iccerrboundB, iccerrboundC, splitter, \
350:            static_filter_o2d, static_filter_i2d
               $394build_tuple.134 = build_tuple(items=[Var(resulterrbound, adaptive_predicates.py:338), Var(ccwerrboundA, adaptive_predicates.py:339), Var(ccwerrboundB, adaptive_predicates.py:340), Var(ccwerrboundC, adaptive_predicates.py:341), Var(iccerrboundA, adaptive_predicates.py:342), Var(iccerrboundB, adaptive_predicates.py:343), Var(iccerrboundC, adaptive_predicates.py:344), Var(splitter.1, adaptive_predicates.py:329), Var(static_filter_o2d, adaptive_predicates.py:345), Var(static_filter_i2d, adaptive_predicates.py:346)]) :: UniTuple(float64 x 10)
               del static_filter_o2d
               del static_filter_i2d
               del splitter.1
               del resulterrbound
               del iccerrboundC
               del iccerrboundB
               del iccerrboundA
               del ccwerrboundC
               del ccwerrboundB
               del ccwerrboundA
               $396return_value.135 = cast(value=$394build_tuple.134) :: UniTuple(float64 x 10)
               del $394build_tuple.134
               return $396return_value.135



Function name: array_min_impl
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arraymath.py
with signature: (array(float64, 1d, A),) -> float64
500: def array_min_impl(arry):
501:     if arry.size == 0:
      label 0
        arry = arg(0, name=arry) :: array(float64, 1d, A)
        $4load_attr.1 = getattr(value=arry, attr=size) :: int64
        $const6.2 = const(int, 0) :: Literal[int](0)
        $8compare_op.3 = $4load_attr.1 == $const6.2 :: bool
        del $const6.2
        del $4load_attr.1
        branch $8compare_op.3, 12, 20
502:         raise ValueError(MSG)
          label 12
            del arry
            del $8compare_op.3
            $12load_global.0 = global(ValueError: <class 'ValueError'>) :: ValueError
            $14load_deref.1 = freevar(MSG: zero-size array to reduction operation minimum which has no identity) :: Literal[str](zero-size array to reduction operation minimum which has no identity)
            $16call_function.2 = call $12load_global.0($14load_deref.1, func=$12load_global.0, args=[Var($14load_deref.1, arraymath.py:502)], kws=(), vararg=None) :: () -> ValueError(...)
            del $16call_function.2
            del $14load_deref.1
            del $12load_global.0
            raise <class 'ValueError'>('zero-size array to reduction operation minimum which has no identity')
503:
504:     it = np.nditer(arry)
      label 20
        del $8compare_op.3
        $20load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $22load_method.1 = getattr(value=$20load_global.0, attr=nditer) :: Function(<class 'numpy.nditer'>)
        del $20load_global.0
        $26call_method.3 = call $22load_method.1(arry, func=$22load_method.1, args=[Var(arry, arraymath.py:501)], kws=(), vararg=None) :: (array(float64, 1d, A),) -> nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),))
        del arry
        del $22load_method.1
        it = $26call_method.3 :: nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),))
        del $26call_method.3
505:     min_value = next(it).take(0)
        $30load_global.4 = global(next: <built-in function next>) :: Function(<built-in function next>)
        $34call_function.6 = call $30load_global.4(it, func=$30load_global.4, args=[Var(it, arraymath.py:504)], kws=(), vararg=None) :: (nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),)),) -> array(float64, 0d, C)
        del $30load_global.4
        $36load_method.7 = getattr(value=$34call_function.6, attr=take) :: BoundFunction(array.take for array(float64, 0d, C))
        del $34call_function.6
        $const38.8 = const(int, 0) :: Literal[int](0)
        $40call_method.9 = call $36load_method.7($const38.8, func=$36load_method.7, args=[Var($const38.8, arraymath.py:505)], kws=(), vararg=None) :: (Literal[int](0),) -> float64
        del $const38.8
        del $36load_method.7
        min_value = $40call_method.9 :: float64
        del $40call_method.9
506:
507:     for view in it:
        jump 44
      label 44
        $48get_iter.1 = getiter(value=it) :: nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),))
        del it
        $phi50.0 = $48get_iter.1 :: nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),))
        del $48get_iter.1
        jump 50
      label 50
        $50for_iter.1 = iternext(value=$phi50.0) :: pair<array(float64, 0d, C), bool>
        $50for_iter.2 = pair_first(value=$50for_iter.1) :: array(float64, 0d, C)
        $50for_iter.3 = pair_second(value=$50for_iter.1) :: bool
        del $50for_iter.1
        $phi52.1 = $50for_iter.2 :: array(float64, 0d, C)
        del $50for_iter.2
        branch $50for_iter.3, 52, 76
      label 52
        del $50for_iter.3
        view = $phi52.1 :: array(float64, 0d, C)
        del $phi52.1
      label 79
        del v
        del $66compare_op.7
        jump 50
508:         v = view.item()
            $56load_method.3 = getattr(value=view, attr=item) :: BoundFunction(array.item for array(float64, 0d, C))
            del view
            $58call_method.4 = call $56load_method.3(func=$56load_method.3, args=[], kws=(), vararg=None) :: () -> float64
            del $56load_method.3
            v = $58call_method.4 :: float64
            del $58call_method.4
509:         if v < min_value:
            $66compare_op.7 = v < min_value :: bool
            branch $66compare_op.7, 70, 79
510:             min_value = v
              label 70
                del $66compare_op.7
                min_value = v :: float64
                del v
                jump 79
              label 76
511:     return min_value
        del $phi52.1
        del $phi50.0
        del $50for_iter.3
        jump 78
      label 78
        $80return_value.1 = cast(value=min_value) :: float64
        del min_value
        return $80return_value.1



Function name: check_shape
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arrayobj.py
with signature: (UniTuple(int64 x 1), UniTuple(int64 x 1)) -> none
2702: def check_shape(shape, main_shape):
2703:     n = len(shape)
      label 0
        shape = arg(0, name=shape) :: UniTuple(int64 x 1)
        main_shape = arg(1, name=main_shape) :: UniTuple(int64 x 1)
        $2load_global.0 = global(len: <built-in function len>) :: Function(<built-in function len>)
        del $2load_global.0
        $6call_function.2 = const(int, 1) :: Literal[int](1)
        n = $6call_function.2 :: Literal[int](1)
        del $6call_function.2
2704:     for i in range(n):
        jump 10
      label 10
        $12load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $16call_function.2 = call $12load_global.0(n, func=$12load_global.0, args=[Var(n, arrayobj.py:2703)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del $12load_global.0
        $18get_iter.3 = getiter(value=$16call_function.2) :: range_iter_int64
        del $16call_function.2
        $phi20.0 = $18get_iter.3 :: range_iter_int64
        del $18get_iter.3
        jump 20
      label 20
        del $48compare_op.14
        $20for_iter.1 = iternext(value=$phi20.0) :: pair<int64, bool>
        $20for_iter.2 = pair_first(value=$20for_iter.1) :: int64
        $20for_iter.3 = pair_second(value=$20for_iter.1) :: bool
        del $20for_iter.1
        $phi22.1 = $20for_iter.2 :: int64
        del $20for_iter.2
        branch $20for_iter.3, 22, 62
      label 22
        del $20for_iter.3
        i = $phi22.1 :: int64
        del $phi22.1
2705:         if shape[i] != main_shape[len(main_shape) - n + i]:
            $28binary_subscr.4 = getitem(value=shape, index=i) :: int64
            $32load_global.6 = global(len: <built-in function len>) :: Function(<built-in function len>)
            del $32load_global.6
            $36call_function.8 = const(int, 1) :: Literal[int](1)
            $40binary_subtract.10 = $36call_function.8 - n :: int64
            del $36call_function.8
            $44binary_add.12 = $40binary_subtract.10 + i :: int64
            del i
            del $40binary_subtract.10
            $46binary_subscr.13 = getitem(value=main_shape, index=$44binary_add.12) :: int64
            del $44binary_add.12
            $48compare_op.14 = $28binary_subscr.4 != $46binary_subscr.13 :: bool
            del $46binary_subscr.13
            del $28binary_subscr.4
            branch $48compare_op.14, 52, 20
2706:             raise ValueError("nditer(): operands could not be "
              label 52
                del shape
                del n
                del main_shape
                del $phi20.0
                del $48compare_op.14
                $52load_global.1 = global(ValueError: <class 'ValueError'>) :: ValueError
                $const54.2 = const(str, nditer(): operands could not be broadcast together) :: Literal[str](nditer(): operands could not be broadcast together)
                $56call_function.3 = call $52load_global.1($const54.2, func=$52load_global.1, args=[Var($const54.2, arrayobj.py:2706)], kws=(), vararg=None) :: () -> ValueError(...)
                del $const54.2
                del $56call_function.3
                del $52load_global.1
                raise <class 'ValueError'>('nditer(): operands could not be broadcast together')
              label 62
                del shape
                del n
                del main_shape
                del $phi22.1
                del $phi20.0
                del $20for_iter.3
                jump 64
              label 64
                $const64.0 = const(NoneType, None) :: none
                $66return_value.1 = cast(value=$const64.0) :: none
                del $const64.0
                return $66return_value.1
2707:                              "broadcast together")



Function name: take_impl
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arrayobj.py
with signature: (array(float64, 0d, C), Literal[int](0)) -> float64
3753: def take_impl(a, indices):
3754:     if indices > (a.size - 1) or indices < -a.size:
      label 0
        a = arg(0, name=a) :: array(float64, 0d, C)
        indices = arg(1, name=indices) :: Literal[int](0)
        $6load_attr.2 = getattr(value=a, attr=size) :: int64
        $const8.3 = const(int, 1) :: Literal[int](1)
        $10binary_subtract.4 = $6load_attr.2 - $const8.3 :: int64
        del $const8.3
        del $6load_attr.2
        $12compare_op.5 = indices > $10binary_subtract.4 :: bool
        del $10binary_subtract.4
        branch $12compare_op.5, 28, 16
      label 16
        del $12compare_op.5
        $20load_attr.2 = getattr(value=a, attr=size) :: int64
        $22unary_negative.3 = unary(fn=<built-in function neg>, value=$20load_attr.2) :: int64
        del $20load_attr.2
        $24compare_op.4 = indices < $22unary_negative.3 :: bool
        del $22unary_negative.3
        branch $24compare_op.4, 28, 36
3755:         raise IndexError("Index out of bounds")
          label 28
            del indices
            del a
            del $24compare_op.4
            del $12compare_op.5
            $28load_global.0 = global(IndexError: <class 'IndexError'>) :: IndexError
            $const30.1 = const(str, Index out of bounds) :: Literal[str](Index out of bounds)
            $32call_function.2 = call $28load_global.0($const30.1, func=$28load_global.0, args=[Var($const30.1, arrayobj.py:3755)], kws=(), vararg=None) :: () -> IndexError(...)
            del $const30.1
            del $32call_function.2
            del $28load_global.0
            raise <class 'IndexError'>('Index out of bounds')
3756:     return a.ravel()[np.int(indices)]
      label 36
        del $24compare_op.4
        $38load_method.1 = getattr(value=a, attr=ravel) :: BoundFunction(array.ravel for array(float64, 0d, C))
        del a
        $40call_method.2 = call $38load_method.1(func=$38load_method.1, args=[], kws=(), vararg=None) :: () -> array(float64, 1d, C)
        del $38load_method.1
        $42load_global.3 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $44load_method.4 = getattr(value=$42load_global.3, attr=int) :: Function(<class 'int'>)
        del $42load_global.3
        $48call_method.6 = call $44load_method.4(indices, func=$44load_method.4, args=[Var(indices, arrayobj.py:3754)], kws=(), vararg=None) :: (Literal[int](0),) -> Literal[int](0)
        del indices
        del $44load_method.4
        $50binary_subscr.7 = getitem(value=$40call_method.2, index=$48call_method.6) :: float64
        del $48call_method.6
        del $40call_method.2
        $52return_value.8 = cast(value=$50binary_subscr.7) :: float64
        del $50binary_subscr.7
        return $52return_value.8



Function name: imp_nocopy
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arrayobj.py
with signature: (array(float64, 0d, C),) -> array(float64, 1d, C)
1725: def imp_nocopy(ary):
1726:     """No copy version"""
1727:     return ary.reshape(ary.size)
      label 0
        ary = arg(0, name=ary) :: array(float64, 0d, C)
        $4load_method.1 = getattr(value=ary, attr=reshape) :: BoundFunction(array.reshape for array(float64, 0d, C))
        $8load_attr.3 = getattr(value=ary, attr=size) :: int64
        del ary
        $10call_method.4 = call $4load_method.1($8load_attr.3, func=$4load_method.1, args=[Var($8load_attr.3, arrayobj.py:1727)], kws=(), vararg=None) :: (int64,) -> array(float64, 1d, C)
        del $8load_attr.3
        del $4load_method.1
        $12return_value.5 = cast(value=$10call_method.4) :: array(float64, 1d, C)
        del $10call_method.4
        return $12return_value.5



Function name: normalize_reshape_value
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arrayobj.py
with signature: (uint64, array(int64, 1d, C)) -> none
1588: def normalize_reshape_value(origsize, shape):
1589:     num_neg_value = 0
      label 0
        origsize = arg(0, name=origsize) :: uint64
        shape = arg(1, name=shape) :: array(int64, 1d, C)
        $const2.0 = const(int, 0) :: Literal[int](0)
        num_neg_value = $const2.0 :: int64
        del $const2.0
1590:     known_size = 1
        $const6.1 = const(int, 1) :: Literal[int](1)
        known_size = $const6.1 :: int64
        del $const6.1
1591:     for ax, s in enumerate(shape):
        jump 10
      label 10
        $12load_global.0 = global(enumerate: <class 'enumerate'>) :: Function(<class 'enumerate'>)
        $16call_function.2 = call $12load_global.0(shape, func=$12load_global.0, args=[Var(shape, arrayobj.py:1589)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> enumerate(iter(array(int64, 1d, C)))
        del $12load_global.0
        $18get_iter.3 = getiter(value=$16call_function.2) :: enumerate(iter(array(int64, 1d, C)))
        del $16call_function.2
        $phi20.0 = $18get_iter.3 :: enumerate(iter(array(int64, 1d, C)))
        del $18get_iter.3
        jump 20
      label 20
        $20for_iter.1 = iternext(value=$phi20.0) :: pair<UniTuple(int64 x 2), bool>
        $20for_iter.2 = pair_first(value=$20for_iter.1) :: UniTuple(int64 x 2)
        $20for_iter.3 = pair_second(value=$20for_iter.1) :: bool
        del $20for_iter.1
        $phi22.1 = $20for_iter.2 :: UniTuple(int64 x 2)
        del $20for_iter.2
        branch $20for_iter.3, 22, 60
      label 22
        del $20for_iter.3
        $22unpack_sequence.4 = exhaust_iter(value=$phi22.1, count=2) :: UniTuple(int64 x 2)
        del $phi22.1
        $22unpack_sequence.2 = static_getitem(value=$22unpack_sequence.4, index=0, index_var=None) :: int64
        $22unpack_sequence.3 = static_getitem(value=$22unpack_sequence.4, index=1, index_var=None) :: int64
        del $22unpack_sequence.4
        ax = $22unpack_sequence.2 :: int64
        del $22unpack_sequence.2
        s = $22unpack_sequence.3 :: int64
        del $22unpack_sequence.3
      label 169
        jump 20
1592:         if s < 0:
            $const30.6 = const(int, 0) :: Literal[int](0)
            $32compare_op.7 = s < $const30.6 :: bool
            del $const30.6
            branch $32compare_op.7, 36, 50
1593:             num_neg_value += 1
              label 36
                del s
                del $32compare_op.7
                $const38.2 = const(int, 1) :: Literal[int](1)
                $40inplace_add.3 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=num_neg_value, rhs=$const38.2, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const38.2
                num_neg_value = $40inplace_add.3 :: int64
                del $40inplace_add.3
1594:             neg_ax = ax
                neg_ax = ax :: int64
                del ax
                jump 169
1595:         else:
1596:             known_size *= s
              label 50
                del ax
                del $32compare_op.7
                $54inplace_multiply.3 = inplace_binop(fn=<built-in function imul>, immutable_fn=<built-in function mul>, lhs=known_size, rhs=s, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del s
                known_size = $54inplace_multiply.3 :: int64
                del $54inplace_multiply.3
                jump 169
              label 60
1597:
1598:     if num_neg_value == 0:
        del $phi22.1
        del $phi20.0
        del $20for_iter.3
        jump 62
      label 62
        $const64.1 = const(int, 0) :: Literal[int](0)
        $66compare_op.2 = num_neg_value == $const64.1 :: bool
        del $const64.1
        branch $66compare_op.2, 70, 88
1599:         if origsize != known_size:
          label 70
            del shape
            del num_neg_value
            del neg_ax
            del $66compare_op.2
            $74compare_op.2 = origsize != known_size :: bool
            del origsize
            del known_size
            branch $74compare_op.2, 78, 168
1600:             raise ValueError("total size of new array must be unchanged")
              label 78
                del $74compare_op.2
                $78load_global.0 = global(ValueError: <class 'ValueError'>) :: ValueError
                $const80.1 = const(str, total size of new array must be unchanged) :: Literal[str](total size of new array must be unchanged)
                $82call_function.2 = call $78load_global.0($const80.1, func=$78load_global.0, args=[Var($const80.1, arrayobj.py:1600)], kws=(), vararg=None) :: () -> ValueError(...)
                del $const80.1
                del $82call_function.2
                del $78load_global.0
                raise <class 'ValueError'>('total size of new array must be unchanged')
1601:
1602:     elif num_neg_value == 1:
      label 88
        del $66compare_op.2
        $const90.1 = const(int, 1) :: Literal[int](1)
        $92compare_op.2 = num_neg_value == $const90.1 :: bool
        del num_neg_value
        del $const90.1
        branch $92compare_op.2, 96, 160
1603:         # Infer negative dimension
1604:         if known_size == 0:
          label 96
            del $92compare_op.2
            $const98.1 = const(int, 0) :: Literal[int](0)
            $100compare_op.2 = known_size == $const98.1 :: bool
            del $const98.1
            branch $100compare_op.2, 104, 118
1605:             inferred = 0
              label 104
                del known_size
                del $100compare_op.2
                $const104.0 = const(int, 0) :: Literal[int](0)
                inferred = $const104.0 :: int64
                del $const104.0
1606:             ok = origsize == 0
                $const110.2 = const(int, 0) :: Literal[int](0)
                $112compare_op.3 = origsize == $const110.2 :: bool
                del origsize
                del $const110.2
                ok = $112compare_op.3 :: bool
                del $112compare_op.3
                jump 138
1607:         else:
1608:             inferred = origsize // known_size
              label 118
                del $100compare_op.2
                $122binary_floor_divide.2 = origsize // known_size :: int64
                inferred = $122binary_floor_divide.2 :: int64
                del $122binary_floor_divide.2
1609:             ok = origsize % known_size == 0
                $130binary_modulo.5 = origsize % known_size :: int64
                del origsize
                del known_size
                $const132.6 = const(int, 0) :: Literal[int](0)
                $134compare_op.7 = $130binary_modulo.5 == $const132.6 :: bool
                del $const132.6
                del $130binary_modulo.5
                ok = $134compare_op.7 :: bool
                del $134compare_op.7
1610:         if not ok:
            jump 138
          label 138
            branch ok, 150, 142
1611:             raise ValueError("total size of new array must be unchanged")
              label 142
                del shape
                del ok
                del neg_ax
                del inferred
                $142load_global.0 = global(ValueError: <class 'ValueError'>) :: ValueError
                $const144.1 = const(str, total size of new array must be unchanged) :: Literal[str](total size of new array must be unchanged)
                $146call_function.2 = call $142load_global.0($const144.1, func=$142load_global.0, args=[Var($const144.1, arrayobj.py:1611)], kws=(), vararg=None) :: () -> ValueError(...)
                del $const144.1
                del $146call_function.2
                del $142load_global.0
                raise <class 'ValueError'>('total size of new array must be unchanged')
1612:         shape[neg_ax] = inferred
          label 150
            del ok
            shape[neg_ax] = inferred :: (array(int64, 1d, C), int64, int64) -> none
            del shape
            del neg_ax
            del inferred
            jump 168
1613:
1614:     else:
1615:         raise ValueError("multiple negative shape values")
          label 160
            del shape
            del origsize
            del neg_ax
            del known_size
            del $92compare_op.2
            $160load_global.0 = global(ValueError: <class 'ValueError'>) :: ValueError
            $const162.1 = const(str, multiple negative shape values) :: Literal[str](multiple negative shape values)
            $164call_function.2 = call $160load_global.0($const162.1, func=$160load_global.0, args=[Var($const162.1, arrayobj.py:1615)], kws=(), vararg=None) :: () -> ValueError(...)
            del $const162.1
            del $164call_function.2
            del $160load_global.0
            raise <class 'ValueError'>('multiple negative shape values')
          label 168
            del $74compare_op.2
            $const168.0 = const(NoneType, None) :: none
            $170return_value.1 = cast(value=$const168.0) :: none
            del $const168.0
            return $170return_value.1



Function name: array_max_impl
in file: /home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numba/targets/arraymath.py
with signature: (array(float64, 1d, A),) -> float64
540: def array_max_impl(arry):
541:     if arry.size == 0:
      label 0
        arry = arg(0, name=arry) :: array(float64, 1d, A)
        $4load_attr.1 = getattr(value=arry, attr=size) :: int64
        $const6.2 = const(int, 0) :: Literal[int](0)
        $8compare_op.3 = $4load_attr.1 == $const6.2 :: bool
        del $const6.2
        del $4load_attr.1
        branch $8compare_op.3, 12, 20
542:         raise ValueError(MSG)
          label 12
            del arry
            del $8compare_op.3
            $12load_global.0 = global(ValueError: <class 'ValueError'>) :: ValueError
            $14load_deref.1 = freevar(MSG: zero-size array to reduction operation maximum which has no identity) :: Literal[str](zero-size array to reduction operation maximum which has no identity)
            $16call_function.2 = call $12load_global.0($14load_deref.1, func=$12load_global.0, args=[Var($14load_deref.1, arraymath.py:542)], kws=(), vararg=None) :: () -> ValueError(...)
            del $16call_function.2
            del $14load_deref.1
            del $12load_global.0
            raise <class 'ValueError'>('zero-size array to reduction operation maximum which has no identity')
543:
544:     it = np.nditer(arry)
      label 20
        del $8compare_op.3
        $20load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $22load_method.1 = getattr(value=$20load_global.0, attr=nditer) :: Function(<class 'numpy.nditer'>)
        del $20load_global.0
        $26call_method.3 = call $22load_method.1(arry, func=$22load_method.1, args=[Var(arry, arraymath.py:541)], kws=(), vararg=None) :: (array(float64, 1d, A),) -> nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),))
        del arry
        del $22load_method.1
        it = $26call_method.3 :: nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),))
        del $26call_method.3
545:     max_value = next(it).take(0)
        $30load_global.4 = global(next: <built-in function next>) :: Function(<built-in function next>)
        $34call_function.6 = call $30load_global.4(it, func=$30load_global.4, args=[Var(it, arraymath.py:544)], kws=(), vararg=None) :: (nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),)),) -> array(float64, 0d, C)
        del $30load_global.4
        $36load_method.7 = getattr(value=$34call_function.6, attr=take) :: BoundFunction(array.take for array(float64, 0d, C))
        del $34call_function.6
        $const38.8 = const(int, 0) :: Literal[int](0)
        $40call_method.9 = call $36load_method.7($const38.8, func=$36load_method.7, args=[Var($const38.8, arraymath.py:545)], kws=(), vararg=None) :: (Literal[int](0),) -> float64
        del $const38.8
        del $36load_method.7
        max_value = $40call_method.9 :: float64
        del $40call_method.9
546:
547:     for view in it:
        jump 44
      label 44
        $48get_iter.1 = getiter(value=it) :: nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),))
        del it
        $phi50.0 = $48get_iter.1 :: nditer(ndim=1, layout=C, inputs=(array(float64, 1d, A),))
        del $48get_iter.1
        jump 50
      label 50
        $50for_iter.1 = iternext(value=$phi50.0) :: pair<array(float64, 0d, C), bool>
        $50for_iter.2 = pair_first(value=$50for_iter.1) :: array(float64, 0d, C)
        $50for_iter.3 = pair_second(value=$50for_iter.1) :: bool
        del $50for_iter.1
        $phi52.1 = $50for_iter.2 :: array(float64, 0d, C)
        del $50for_iter.2
        branch $50for_iter.3, 52, 76
      label 52
        del $50for_iter.3
        view = $phi52.1 :: array(float64, 0d, C)
        del $phi52.1
      label 79
        del v
        del $66compare_op.7
        jump 50
548:         v = view.item()
            $56load_method.3 = getattr(value=view, attr=item) :: BoundFunction(array.item for array(float64, 0d, C))
            del view
            $58call_method.4 = call $56load_method.3(func=$56load_method.3, args=[], kws=(), vararg=None) :: () -> float64
            del $56load_method.3
            v = $58call_method.4 :: float64
            del $58call_method.4
549:         if v > max_value:
            $66compare_op.7 = v > max_value :: bool
            branch $66compare_op.7, 70, 79
550:             max_value = v
              label 70
                del $66compare_op.7
                max_value = v :: float64
                del v
                jump 79
              label 76
551:     return max_value
        del $phi52.1
        del $phi50.0
        del $50for_iter.3
        jump 78
      label 78
        $80return_value.1 = cast(value=max_value) :: float64
        del max_value
        return $80return_value.1



Function name: Split
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64) -> UniTuple(float64 x 2)
70: @njit
71: def Split(a, splitter):
72:     c = splitter * a
      label 0
        a = arg(0, name=a) :: float64
        splitter = arg(1, name=splitter) :: float64
        $6binary_multiply.2 = splitter * a :: float64
        del splitter
        c = $6binary_multiply.2 :: float64
        del $6binary_multiply.2
73:     abig = c - a
        $14binary_subtract.5 = c - a :: float64
        abig = $14binary_subtract.5 :: float64
        del $14binary_subtract.5
74:     ahi = c - abig
        $22binary_subtract.8 = c - abig :: float64
        del c
        del abig
        ahi = $22binary_subtract.8 :: float64
        del $22binary_subtract.8
75:     alo = a - ahi
        $30binary_subtract.11 = a - ahi :: float64
        del a
        alo = $30binary_subtract.11 :: float64
        del $30binary_subtract.11
76:     return ahi, alo
        $38build_tuple.14 = build_tuple(items=[Var(ahi, adaptive_predicates.py:74), Var(alo, adaptive_predicates.py:75)]) :: UniTuple(float64 x 2)
        del alo
        del ahi
        $40return_value.15 = cast(value=$38build_tuple.14) :: UniTuple(float64 x 2)
        del $38build_tuple.14
        return $40return_value.15



Function name: Two_Product_Tail
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64, float64) -> float64
79: @njit
80: def Two_Product_Tail(a, b, x, splitter):
81:     ahi, alo = Split(a, splitter)
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        x = arg(2, name=x) :: float64
        splitter = arg(3, name=splitter) :: float64
        $2load_global.0 = global(Split: CPUDispatcher(<function Split at 0x7f51d4cb2560>)) :: type(CPUDispatcher(<function Split at 0x7f51d4cb2560>))
        $8call_function.3 = call $2load_global.0(a, splitter, func=$2load_global.0, args=[Var(a, adaptive_predicates.py:81), Var(splitter, adaptive_predicates.py:81)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del a
        del $2load_global.0
        $10unpack_sequence.6 = exhaust_iter(value=$8call_function.3, count=2) :: UniTuple(float64 x 2)
        del $8call_function.3
        $10unpack_sequence.4 = static_getitem(value=$10unpack_sequence.6, index=0, index_var=None) :: float64
        $10unpack_sequence.5 = static_getitem(value=$10unpack_sequence.6, index=1, index_var=None) :: float64
        del $10unpack_sequence.6
        ahi = $10unpack_sequence.4 :: float64
        del $10unpack_sequence.4
        alo = $10unpack_sequence.5 :: float64
        del $10unpack_sequence.5
82:     bhi, blo = Split(b, splitter)
        $16load_global.7 = global(Split: CPUDispatcher(<function Split at 0x7f51d4cb2560>)) :: type(CPUDispatcher(<function Split at 0x7f51d4cb2560>))
        $22call_function.10 = call $16load_global.7(b, splitter, func=$16load_global.7, args=[Var(b, adaptive_predicates.py:81), Var(splitter, adaptive_predicates.py:81)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del splitter
        del b
        del $16load_global.7
        $24unpack_sequence.13 = exhaust_iter(value=$22call_function.10, count=2) :: UniTuple(float64 x 2)
        del $22call_function.10
        $24unpack_sequence.11 = static_getitem(value=$24unpack_sequence.13, index=0, index_var=None) :: float64
        $24unpack_sequence.12 = static_getitem(value=$24unpack_sequence.13, index=1, index_var=None) :: float64
        del $24unpack_sequence.13
        bhi = $24unpack_sequence.11 :: float64
        del $24unpack_sequence.11
        blo = $24unpack_sequence.12 :: float64
        del $24unpack_sequence.12
83:     err1 = x - (ahi * bhi)
        $36binary_multiply.17 = ahi * bhi :: float64
        $38binary_subtract.18 = x - $36binary_multiply.17 :: float64
        del x
        del $36binary_multiply.17
        err1 = $38binary_subtract.18 :: float64
        del $38binary_subtract.18
84:     err2 = err1 - (alo * bhi)
        $48binary_multiply.22 = alo * bhi :: float64
        del bhi
        $50binary_subtract.23 = err1 - $48binary_multiply.22 :: float64
        del err1
        del $48binary_multiply.22
        err2 = $50binary_subtract.23 :: float64
        del $50binary_subtract.23
85:     err3 = err2 - (ahi * blo)
        $60binary_multiply.27 = ahi * blo :: float64
        del ahi
        $62binary_subtract.28 = err2 - $60binary_multiply.27 :: float64
        del err2
        del $60binary_multiply.27
        err3 = $62binary_subtract.28 :: float64
        del $62binary_subtract.28
86:     y = (alo * blo) - err3
        $70binary_multiply.31 = alo * blo :: float64
        del blo
        del alo
        $74binary_subtract.33 = $70binary_multiply.31 - err3 :: float64
        del err3
        del $70binary_multiply.31
        y = $74binary_subtract.33 :: float64
        del $74binary_subtract.33
87:     return y
        $80return_value.35 = cast(value=y) :: float64
        del y
        return $80return_value.35



Function name: Two_Product
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64) -> UniTuple(float64 x 2)
90: @njit
91: def Two_Product(a, b, splitter):
92:     x = a * b
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        splitter = arg(2, name=splitter) :: float64
        $6binary_multiply.2 = a * b :: float64
        x = $6binary_multiply.2 :: float64
        del $6binary_multiply.2
93:     y = Two_Product_Tail(a, b, x, splitter)
        $10load_global.3 = global(Two_Product_Tail: CPUDispatcher(<function Two_Product_Tail at 0x7f51d4cb2830>)) :: type(CPUDispatcher(<function Two_Product_Tail at 0x7f51d4cb2830>))
        $20call_function.8 = call $10load_global.3(a, b, x, splitter, func=$10load_global.3, args=[Var(a, adaptive_predicates.py:92), Var(b, adaptive_predicates.py:92), Var(x, adaptive_predicates.py:92), Var(splitter, adaptive_predicates.py:92)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> float64
        del splitter
        del b
        del a
        del $10load_global.3
        y = $20call_function.8 :: float64
        del $20call_function.8
94:     return x, y
        $28build_tuple.11 = build_tuple(items=[Var(x, adaptive_predicates.py:92), Var(y, adaptive_predicates.py:93)]) :: UniTuple(float64 x 2)
        del y
        del x
        $30return_value.12 = cast(value=$28build_tuple.11) :: UniTuple(float64 x 2)
        del $28build_tuple.11
        return $30return_value.12



Function name: Two_Diff_Tail
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64) -> float64
53: @njit
54: def Two_Diff_Tail(a, b, x):
55:     bvirt = a - x
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        x = arg(2, name=x) :: float64
        $6binary_subtract.2 = a - x :: float64
        bvirt = $6binary_subtract.2 :: float64
        del $6binary_subtract.2
56:     avirt = x + bvirt
        $14binary_add.5 = x + bvirt :: float64
        del x
        avirt = $14binary_add.5 :: float64
        del $14binary_add.5
57:     bround = bvirt - b
        $22binary_subtract.8 = bvirt - b :: float64
        del bvirt
        del b
        bround = $22binary_subtract.8 :: float64
        del $22binary_subtract.8
58:     around = a - avirt
        $30binary_subtract.11 = a - avirt :: float64
        del avirt
        del a
        around = $30binary_subtract.11 :: float64
        del $30binary_subtract.11
59:     y = around + bround
        $38binary_add.14 = around + bround :: float64
        del bround
        del around
        y = $38binary_add.14 :: float64
        del $38binary_add.14
60:     return y
        $44return_value.16 = cast(value=y) :: float64
        del y
        return $44return_value.16



Function name: Two_Diff
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64) -> UniTuple(float64 x 2)
63: @njit
64: def Two_Diff(a, b):
65:     x = a - b
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        $6binary_subtract.2 = a - b :: float64
        x = $6binary_subtract.2 :: float64
        del $6binary_subtract.2
66:     y = Two_Diff_Tail(a, b, x)
        $10load_global.3 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $18call_function.7 = call $10load_global.3(a, b, x, func=$10load_global.3, args=[Var(a, adaptive_predicates.py:65), Var(b, adaptive_predicates.py:65), Var(x, adaptive_predicates.py:65)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del b
        del a
        del $10load_global.3
        y = $18call_function.7 :: float64
        del $18call_function.7
67:     return x, y
        $26build_tuple.10 = build_tuple(items=[Var(x, adaptive_predicates.py:65), Var(y, adaptive_predicates.py:66)]) :: UniTuple(float64 x 2)
        del y
        del x
        $28return_value.11 = cast(value=$26build_tuple.10) :: UniTuple(float64 x 2)
        del $26build_tuple.10
        return $28return_value.11



Function name: Two_Sum_Tail
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64) -> float64
36: @njit
37: def Two_Sum_Tail(a, b, x):
38:     bvirt = x - a
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        x = arg(2, name=x) :: float64
        $6binary_subtract.2 = x - a :: float64
        bvirt = $6binary_subtract.2 :: float64
        del $6binary_subtract.2
39:     avirt = x - bvirt
        $14binary_subtract.5 = x - bvirt :: float64
        del x
        avirt = $14binary_subtract.5 :: float64
        del $14binary_subtract.5
40:     bround = b - bvirt
        $22binary_subtract.8 = b - bvirt :: float64
        del bvirt
        del b
        bround = $22binary_subtract.8 :: float64
        del $22binary_subtract.8
41:     around = a - avirt
        $30binary_subtract.11 = a - avirt :: float64
        del avirt
        del a
        around = $30binary_subtract.11 :: float64
        del $30binary_subtract.11
42:     y = around + bround
        $38binary_add.14 = around + bround :: float64
        del bround
        del around
        y = $38binary_add.14 :: float64
        del $38binary_add.14
43:     return y
        $44return_value.16 = cast(value=y) :: float64
        del y
        return $44return_value.16



Function name: Two_Sum
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64) -> UniTuple(float64 x 2)
46: @njit
47: def Two_Sum(a, b):
48:     x = a + b
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        $6binary_add.2 = a + b :: float64
        x = $6binary_add.2 :: float64
        del $6binary_add.2
49:     y = Two_Sum_Tail(a, b, x)
        $10load_global.3 = global(Two_Sum_Tail: CPUDispatcher(<function Two_Sum_Tail at 0x7f51d4cc59e0>)) :: type(CPUDispatcher(<function Two_Sum_Tail at 0x7f51d4cc59e0>))
        $18call_function.7 = call $10load_global.3(a, b, x, func=$10load_global.3, args=[Var(a, adaptive_predicates.py:48), Var(b, adaptive_predicates.py:48), Var(x, adaptive_predicates.py:48)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del b
        del a
        del $10load_global.3
        y = $18call_function.7 :: float64
        del $18call_function.7
50:     return x, y
        $26build_tuple.10 = build_tuple(items=[Var(x, adaptive_predicates.py:48), Var(y, adaptive_predicates.py:49)]) :: UniTuple(float64 x 2)
        del y
        del x
        $28return_value.11 = cast(value=$26build_tuple.10) :: UniTuple(float64 x 2)
        del $26build_tuple.10
        return $28return_value.11



Function name: Two_One_Diff
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64) -> UniTuple(float64 x 3)
152: @njit
153: def Two_One_Diff(a1, a0, b):
154:     _i, x0 = Two_Diff(a0, b)
      label 0
        a1 = arg(0, name=a1) :: float64
        a0 = arg(1, name=a0) :: float64
        b = arg(2, name=b) :: float64
        $2load_global.0 = global(Two_Diff: CPUDispatcher(<function Two_Diff at 0x7f51d4cb2290>)) :: type(CPUDispatcher(<function Two_Diff at 0x7f51d4cb2290>))
        $8call_function.3 = call $2load_global.0(a0, b, func=$2load_global.0, args=[Var(a0, adaptive_predicates.py:154), Var(b, adaptive_predicates.py:154)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del b
        del a0
        del $2load_global.0
        $10unpack_sequence.6 = exhaust_iter(value=$8call_function.3, count=2) :: UniTuple(float64 x 2)
        del $8call_function.3
        $10unpack_sequence.4 = static_getitem(value=$10unpack_sequence.6, index=0, index_var=None) :: float64
        $10unpack_sequence.5 = static_getitem(value=$10unpack_sequence.6, index=1, index_var=None) :: float64
        del $10unpack_sequence.6
        _i = $10unpack_sequence.4 :: float64
        del $10unpack_sequence.4
        x0 = $10unpack_sequence.5 :: float64
        del $10unpack_sequence.5
155:     x2, x1 = Two_Sum(a1, _i)
        $16load_global.7 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
        $22call_function.10 = call $16load_global.7(a1, _i, func=$16load_global.7, args=[Var(a1, adaptive_predicates.py:154), Var(_i, adaptive_predicates.py:154)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del a1
        del _i
        del $16load_global.7
        $24unpack_sequence.13 = exhaust_iter(value=$22call_function.10, count=2) :: UniTuple(float64 x 2)
        del $22call_function.10
        $24unpack_sequence.11 = static_getitem(value=$24unpack_sequence.13, index=0, index_var=None) :: float64
        $24unpack_sequence.12 = static_getitem(value=$24unpack_sequence.13, index=1, index_var=None) :: float64
        del $24unpack_sequence.13
        x2 = $24unpack_sequence.11 :: float64
        del $24unpack_sequence.11
        x1 = $24unpack_sequence.12 :: float64
        del $24unpack_sequence.12
156:     return x2, x1, x0
        $36build_tuple.17 = build_tuple(items=[Var(x2, adaptive_predicates.py:155), Var(x1, adaptive_predicates.py:155), Var(x0, adaptive_predicates.py:154)]) :: UniTuple(float64 x 3)
        del x2
        del x1
        del x0
        $38return_value.18 = cast(value=$36build_tuple.17) :: UniTuple(float64 x 3)
        del $36build_tuple.17
        return $38return_value.18



Function name: Two_Two_Diff
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
166: @njit
167: def Two_Two_Diff(a1, a0, b1, b0):
168:     _j, _0, x0 = Two_One_Diff(a1, a0, b0)
      label 0
        a1 = arg(0, name=a1) :: float64
        a0 = arg(1, name=a0) :: float64
        b1 = arg(2, name=b1) :: float64
        b0 = arg(3, name=b0) :: float64
        $2load_global.0 = global(Two_One_Diff: CPUDispatcher(<function Two_One_Diff at 0x7f51d4cacc20>)) :: type(CPUDispatcher(<function Two_One_Diff at 0x7f51d4cacc20>))
        $10call_function.4 = call $2load_global.0(a1, a0, b0, func=$2load_global.0, args=[Var(a1, adaptive_predicates.py:168), Var(a0, adaptive_predicates.py:168), Var(b0, adaptive_predicates.py:168)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 3)
        del b0
        del a1
        del a0
        del $2load_global.0
        $12unpack_sequence.8 = exhaust_iter(value=$10call_function.4, count=3) :: UniTuple(float64 x 3)
        del $10call_function.4
        $12unpack_sequence.5 = static_getitem(value=$12unpack_sequence.8, index=0, index_var=None) :: float64
        $12unpack_sequence.6 = static_getitem(value=$12unpack_sequence.8, index=1, index_var=None) :: float64
        $12unpack_sequence.7 = static_getitem(value=$12unpack_sequence.8, index=2, index_var=None) :: float64
        del $12unpack_sequence.8
        _j = $12unpack_sequence.5 :: float64
        del $12unpack_sequence.5
        _0 = $12unpack_sequence.6 :: float64
        del $12unpack_sequence.6
        x0 = $12unpack_sequence.7 :: float64
        del $12unpack_sequence.7
169:     x3, x2, x1 = Two_One_Diff(_j, _0, b1)
        $20load_global.9 = global(Two_One_Diff: CPUDispatcher(<function Two_One_Diff at 0x7f51d4cacc20>)) :: type(CPUDispatcher(<function Two_One_Diff at 0x7f51d4cacc20>))
        $28call_function.13 = call $20load_global.9(_j, _0, b1, func=$20load_global.9, args=[Var(_j, adaptive_predicates.py:168), Var(_0, adaptive_predicates.py:168), Var(b1, adaptive_predicates.py:168)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 3)
        del b1
        del _j
        del _0
        del $20load_global.9
        $30unpack_sequence.17 = exhaust_iter(value=$28call_function.13, count=3) :: UniTuple(float64 x 3)
        del $28call_function.13
        $30unpack_sequence.14 = static_getitem(value=$30unpack_sequence.17, index=0, index_var=None) :: float64
        $30unpack_sequence.15 = static_getitem(value=$30unpack_sequence.17, index=1, index_var=None) :: float64
        $30unpack_sequence.16 = static_getitem(value=$30unpack_sequence.17, index=2, index_var=None) :: float64
        del $30unpack_sequence.17
        x3 = $30unpack_sequence.14 :: float64
        del $30unpack_sequence.14
        x2 = $30unpack_sequence.15 :: float64
        del $30unpack_sequence.15
        x1 = $30unpack_sequence.16 :: float64
        del $30unpack_sequence.16
170:     return x3, x2, x1, x0
        $46build_tuple.22 = build_tuple(items=[Var(x3, adaptive_predicates.py:169), Var(x2, adaptive_predicates.py:169), Var(x1, adaptive_predicates.py:169), Var(x0, adaptive_predicates.py:168)]) :: UniTuple(float64 x 4)
        del x3
        del x2
        del x1
        del x0
        $48return_value.23 = cast(value=$46build_tuple.22) :: UniTuple(float64 x 4)
        del $46build_tuple.22
        return $48return_value.23



Function name: estimate
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (Literal[int](4), array(float64, 1d, C)) -> float64
988: @njit
989: def estimate(elen, e):
990:
991:     Q = e[0]
      label 0
        elen = arg(0, name=elen) :: Literal[int](4)
        e = arg(1, name=e) :: array(float64, 1d, C)
        $const4.1 = const(int, 0) :: Literal[int](0)
        $6binary_subscr.2 = static_getitem(value=e, index=0, index_var=$const4.1) :: float64
        del $const4.1
        Q = $6binary_subscr.2 :: float64
        del $6binary_subscr.2
992:     for eindex in range(1, elen):
        jump 10
      label 10
        $12load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $const14.1 = const(int, 1) :: Literal[int](1)
        $18call_function.3 = call $12load_global.0($const14.1, elen, func=$12load_global.0, args=[Var($const14.1, adaptive_predicates.py:992), Var(elen, adaptive_predicates.py:991)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
        del elen
        del $const14.1
        del $12load_global.0
        $20get_iter.4 = getiter(value=$18call_function.3) :: range_iter_int64
        del $18call_function.3
        $phi22.0 = $20get_iter.4 :: range_iter_int64
        del $20get_iter.4
        jump 22
      label 22
        $22for_iter.1 = iternext(value=$phi22.0) :: pair<int64, bool>
        $22for_iter.2 = pair_first(value=$22for_iter.1) :: int64
        $22for_iter.3 = pair_second(value=$22for_iter.1) :: bool
        del $22for_iter.1
        $phi24.1 = $22for_iter.2 :: int64
        del $22for_iter.2
        branch $22for_iter.3, 24, 40
      label 24
        del $22for_iter.3
        eindex = $phi24.1 :: int64
        del $phi24.1
993:         Q += e[eindex]
            $32binary_subscr.5 = getitem(value=e, index=eindex) :: float64
            del eindex
            $34inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=Q, rhs=$32binary_subscr.5, static_lhs=Undefined, static_rhs=Undefined) :: float64
            del $32binary_subscr.5
            Q = $34inplace_add.6 :: float64
            del $34inplace_add.6
            jump 22
          label 40
994:     return Q
        del e
        del $phi24.1
        del $phi22.0
        del $22for_iter.3
        jump 42
      label 42
        $44return_value.1 = cast(value=Q) :: float64
        del Q
        return $44return_value.1



Function name: Fast_Two_Sum_Tail
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64) -> float64
8: @njit
9: def Fast_Two_Sum_Tail(a, b, x):
10:     bvirt = x - a
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        x = arg(2, name=x) :: float64
        $6binary_subtract.2 = x - a :: float64
        del x
        del a
        bvirt = $6binary_subtract.2 :: float64
        del $6binary_subtract.2
11:     y = b - bvirt
        $14binary_subtract.5 = b - bvirt :: float64
        del bvirt
        del b
        y = $14binary_subtract.5 :: float64
        del $14binary_subtract.5
12:     return y
        $20return_value.7 = cast(value=y) :: float64
        del y
        return $20return_value.7



Function name: Fast_Two_Sum
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64) -> UniTuple(float64 x 2)
15: @njit
16: def Fast_Two_Sum(a, b):
17:     x = a + b
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        $6binary_add.2 = a + b :: float64
        x = $6binary_add.2 :: float64
        del $6binary_add.2
18:     y = Fast_Two_Sum_Tail(a, b, x)
        $10load_global.3 = global(Fast_Two_Sum_Tail: CPUDispatcher(<function Fast_Two_Sum_Tail at 0x7f51e5d760e0>)) :: type(CPUDispatcher(<function Fast_Two_Sum_Tail at 0x7f51e5d760e0>))
        $18call_function.7 = call $10load_global.3(a, b, x, func=$10load_global.3, args=[Var(a, adaptive_predicates.py:17), Var(b, adaptive_predicates.py:17), Var(x, adaptive_predicates.py:17)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del b
        del a
        del $10load_global.3
        y = $18call_function.7 :: float64
        del $18call_function.7
19:     return x, y
        $26build_tuple.10 = build_tuple(items=[Var(x, adaptive_predicates.py:17), Var(y, adaptive_predicates.py:18)]) :: UniTuple(float64 x 2)
        del y
        del x
        $28return_value.11 = cast(value=$26build_tuple.10) :: UniTuple(float64 x 2)
        del $26build_tuple.10
        return $28return_value.11



Function name: fast_expansion_sum_zeroelim
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (Literal[int](4), array(float64, 1d, C), Literal[int](4), array(float64, 1d, C), array(float64, 1d, C)) -> int64
670: @njit
671: def fast_expansion_sum_zeroelim(elen, e, flen, f, h):
672:     # h cannot be e or f.
673:
674:     enow = e[0]
      label 0
        elen = arg(0, name=elen) :: Literal[int](4)
        e = arg(1, name=e) :: array(float64, 1d, C)
        flen = arg(2, name=flen) :: Literal[int](4)
        f = arg(3, name=f) :: array(float64, 1d, C)
        h = arg(4, name=h) :: array(float64, 1d, C)
        $const4.1 = const(int, 0) :: Literal[int](0)
        $6binary_subscr.2 = static_getitem(value=e, index=0, index_var=$const4.1) :: float64
        del $const4.1
        enow = $6binary_subscr.2 :: float64
        del $6binary_subscr.2
675:     fnow = f[0]
        $const12.4 = const(int, 0) :: Literal[int](0)
        $14binary_subscr.5 = static_getitem(value=f, index=0, index_var=$const12.4) :: float64
        del $const12.4
        fnow = $14binary_subscr.5 :: float64
        del $14binary_subscr.5
676:     eindex = 0
        $const18.6 = const(int, 0) :: Literal[int](0)
        eindex = $const18.6 :: int64
        del $const18.6
677:     findex = 0
        $const22.7 = const(int, 0) :: Literal[int](0)
        findex = $const22.7 :: int64
        del $const22.7
678:     if (fnow > enow) == (fnow > -enow):
        $30compare_op.10 = fnow > enow :: bool
        $36unary_negative.13 = unary(fn=<built-in function neg>, value=enow) :: float64
        $38compare_op.14 = fnow > $36unary_negative.13 :: bool
        del $36unary_negative.13
        $40compare_op.15 = $30compare_op.10 == $38compare_op.14 :: bool
        del $38compare_op.14
        del $30compare_op.10
        branch $40compare_op.15, 44, 66
679:         Q = enow
          label 44
            del $40compare_op.15
            Q = enow :: float64
680:         eindex += 1
            $const50.2 = const(int, 1) :: Literal[int](1)
            $52inplace_add.3 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const50.2, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const50.2
            eindex = $52inplace_add.3 :: int64
            del $52inplace_add.3
681:         enow = e[eindex]
            $60binary_subscr.6 = getitem(value=e, index=eindex) :: float64
            enow = $60binary_subscr.6 :: float64
            del $60binary_subscr.6
            jump 86
682:     else:
683:         Q = fnow
          label 66
            del $40compare_op.15
            Q = fnow :: float64
684:         findex += 1
            $const72.2 = const(int, 1) :: Literal[int](1)
            $74inplace_add.3 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const72.2, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const72.2
            findex = $74inplace_add.3 :: int64
            del $74inplace_add.3
685:         fnow = f[findex]
            $82binary_subscr.6 = getitem(value=f, index=findex) :: float64
            fnow = $82binary_subscr.6 :: float64
            del $82binary_subscr.6
686:
687:     hindex = 0
        jump 86
      label 86
        $const86.0 = const(int, 0) :: Literal[int](0)
        hindex = $const86.0 :: int64
        del $const86.0
688:     if (eindex < elen) and (findex < flen):
        $94compare_op.3 = eindex < elen :: bool
        branch $94compare_op.3, 100, 346
      label 100
        del $94compare_op.3
        $104compare_op.2 = findex < flen :: bool
        branch $104compare_op.2, 110, 346
689:         if (fnow > enow) == (fnow > -enow):
          label 110
            del $104compare_op.2
            $114compare_op.2 = fnow > enow :: bool
            $120unary_negative.5 = unary(fn=<built-in function neg>, value=enow) :: float64
            $122compare_op.6 = fnow > $120unary_negative.5 :: bool
            del $120unary_negative.5
            $124compare_op.7 = $114compare_op.2 == $122compare_op.6 :: bool
            del $122compare_op.6
            del $114compare_op.2
            branch $124compare_op.7, 128, 160
690:             Q, hh = Fast_Two_Sum(enow, Q)
              label 128
                del $124compare_op.7
                $128load_global.0 = global(Fast_Two_Sum: CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>)) :: type(CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>))
                $134call_function.3 = call $128load_global.0(enow, Q, func=$128load_global.0, args=[Var(enow, adaptive_predicates.py:674), Var(Q, adaptive_predicates.py:679)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                del $128load_global.0
                $136unpack_sequence.6 = exhaust_iter(value=$134call_function.3, count=2) :: UniTuple(float64 x 2)
                del $134call_function.3
                $136unpack_sequence.4 = static_getitem(value=$136unpack_sequence.6, index=0, index_var=None) :: float64
                $136unpack_sequence.5 = static_getitem(value=$136unpack_sequence.6, index=1, index_var=None) :: float64
                del $136unpack_sequence.6
                Q = $136unpack_sequence.4 :: float64
                del $136unpack_sequence.4
                hh = $136unpack_sequence.5 :: float64
                del $136unpack_sequence.5
691:             eindex += 1
                $const144.8 = const(int, 1) :: Literal[int](1)
                $146inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const144.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const144.8
                eindex = $146inplace_add.9 :: int64
                del $146inplace_add.9
692:             enow = e[eindex]
                $154binary_subscr.12 = getitem(value=e, index=eindex) :: float64
                enow = $154binary_subscr.12 :: float64
                del $154binary_subscr.12
                jump 190
693:         else:
694:             Q, hh = Fast_Two_Sum(fnow, Q)
              label 160
                del $124compare_op.7
                $160load_global.0 = global(Fast_Two_Sum: CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>)) :: type(CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>))
                $166call_function.3 = call $160load_global.0(fnow, Q, func=$160load_global.0, args=[Var(fnow, adaptive_predicates.py:675), Var(Q, adaptive_predicates.py:679)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                del $160load_global.0
                $168unpack_sequence.6 = exhaust_iter(value=$166call_function.3, count=2) :: UniTuple(float64 x 2)
                del $166call_function.3
                $168unpack_sequence.4 = static_getitem(value=$168unpack_sequence.6, index=0, index_var=None) :: float64
                $168unpack_sequence.5 = static_getitem(value=$168unpack_sequence.6, index=1, index_var=None) :: float64
                del $168unpack_sequence.6
                Q = $168unpack_sequence.4 :: float64
                del $168unpack_sequence.4
                hh = $168unpack_sequence.5 :: float64
                del $168unpack_sequence.5
695:             findex += 1
                $const176.8 = const(int, 1) :: Literal[int](1)
                $178inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const176.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const176.8
                findex = $178inplace_add.9 :: int64
                del $178inplace_add.9
696:             fnow = f[findex]
                $186binary_subscr.12 = getitem(value=f, index=findex) :: float64
                fnow = $186binary_subscr.12 :: float64
                del $186binary_subscr.12
697:
698:         if hh != 0.0:
            jump 190
          label 190
            $const192.1 = const(float, 0.0) :: float64
            $194compare_op.2 = hh != $const192.1 :: bool
            del $const192.1
            branch $194compare_op.2, 198, 214
699:             h[hindex] = hh
              label 198
                del $194compare_op.2
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
700:             hindex += 1
                $const208.4 = const(int, 1) :: Literal[int](1)
                $210inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const208.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const208.4
                hindex = $210inplace_add.5 :: int64
                del $210inplace_add.5
701:
702:         while (eindex < elen) and (findex < flen):
            jump 214
          label 214
            del hh
            del $194compare_op.2
            jump 216
          label 216
            $220compare_op.2 = eindex < elen :: bool
            branch $220compare_op.2, 226, 344
          label 226
            del $220compare_op.2
            $230compare_op.2 = findex < flen :: bool
            branch $230compare_op.2, 236, 344
          label 533
            del hh
            del $322compare_op.2
            jump 216
703:             if (fnow > enow) == (fnow > -enow):
              label 236
                del $230compare_op.2
                $240compare_op.2 = fnow > enow :: bool
                $246unary_negative.5 = unary(fn=<built-in function neg>, value=enow) :: float64
                $248compare_op.6 = fnow > $246unary_negative.5 :: bool
                del $246unary_negative.5
                $250compare_op.7 = $240compare_op.2 == $248compare_op.6 :: bool
                del $248compare_op.6
                del $240compare_op.2
                branch $250compare_op.7, 256, 288
704:                 Q, hh = Two_Sum(Q, enow)
                  label 256
                    del $250compare_op.7
                    $256load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
                    $262call_function.3 = call $256load_global.0(Q, enow, func=$256load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(enow, adaptive_predicates.py:674)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                    del $256load_global.0
                    $264unpack_sequence.6 = exhaust_iter(value=$262call_function.3, count=2) :: UniTuple(float64 x 2)
                    del $262call_function.3
                    $264unpack_sequence.4 = static_getitem(value=$264unpack_sequence.6, index=0, index_var=None) :: float64
                    $264unpack_sequence.5 = static_getitem(value=$264unpack_sequence.6, index=1, index_var=None) :: float64
                    del $264unpack_sequence.6
                    Q = $264unpack_sequence.4 :: float64
                    del $264unpack_sequence.4
                    hh = $264unpack_sequence.5 :: float64
                    del $264unpack_sequence.5
705:                 eindex += 1
                    $const272.8 = const(int, 1) :: Literal[int](1)
                    $274inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const272.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const272.8
                    eindex = $274inplace_add.9 :: int64
                    del $274inplace_add.9
706:                 enow = e[eindex]
                    $282binary_subscr.12 = getitem(value=e, index=eindex) :: float64
                    enow = $282binary_subscr.12 :: float64
                    del $282binary_subscr.12
                    jump 318
707:             else:
708:                 Q, hh = Two_Sum(Q, fnow)
                  label 288
                    del $250compare_op.7
                    $288load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
                    $294call_function.3 = call $288load_global.0(Q, fnow, func=$288load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(fnow, adaptive_predicates.py:675)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                    del $288load_global.0
                    $296unpack_sequence.6 = exhaust_iter(value=$294call_function.3, count=2) :: UniTuple(float64 x 2)
                    del $294call_function.3
                    $296unpack_sequence.4 = static_getitem(value=$296unpack_sequence.6, index=0, index_var=None) :: float64
                    $296unpack_sequence.5 = static_getitem(value=$296unpack_sequence.6, index=1, index_var=None) :: float64
                    del $296unpack_sequence.6
                    Q = $296unpack_sequence.4 :: float64
                    del $296unpack_sequence.4
                    hh = $296unpack_sequence.5 :: float64
                    del $296unpack_sequence.5
709:                 findex += 1
                    $const304.8 = const(int, 1) :: Literal[int](1)
                    $306inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const304.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const304.8
                    findex = $306inplace_add.9 :: int64
                    del $306inplace_add.9
710:                 fnow = f[findex]
                    $314binary_subscr.12 = getitem(value=f, index=findex) :: float64
                    fnow = $314binary_subscr.12 :: float64
                    del $314binary_subscr.12
711:
712:             if (hh != 0.0):
                jump 318
              label 318
                $const320.1 = const(float, 0.0) :: float64
                $322compare_op.2 = hh != $const320.1 :: bool
                del $const320.1
                branch $322compare_op.2, 326, 533
713:                 h[hindex] = hh
                  label 326
                    del $322compare_op.2
                    h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                    del hh
714:                 hindex += 1
                    $const336.4 = const(int, 1) :: Literal[int](1)
                    $338inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const336.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const336.4
                    hindex = $338inplace_add.5 :: int64
                    del $338inplace_add.5
                    jump 533
                  label 344
715:
716:     while eindex < elen:
        del $230compare_op.2
        del $220compare_op.2
        jump 346
      label 346
        del $94compare_op.3
        del $104compare_op.2
        jump 348
      label 348
        $352compare_op.2 = eindex < elen :: bool
        branch $352compare_op.2, 358, 418
      label 532
        del hh
        del $392compare_op.15
        jump 348
717:         Q, hh = Two_Sum(Q, enow)
          label 358
            del $352compare_op.2
            $358load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
            $364call_function.3 = call $358load_global.0(Q, enow, func=$358load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(enow, adaptive_predicates.py:674)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $358load_global.0
            $366unpack_sequence.6 = exhaust_iter(value=$364call_function.3, count=2) :: UniTuple(float64 x 2)
            del $364call_function.3
            $366unpack_sequence.4 = static_getitem(value=$366unpack_sequence.6, index=0, index_var=None) :: float64
            $366unpack_sequence.5 = static_getitem(value=$366unpack_sequence.6, index=1, index_var=None) :: float64
            del $366unpack_sequence.6
            Q = $366unpack_sequence.4 :: float64
            del $366unpack_sequence.4
            hh = $366unpack_sequence.5 :: float64
            del $366unpack_sequence.5
718:         eindex += 1
            $const374.8 = const(int, 1) :: Literal[int](1)
            $376inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const374.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const374.8
            eindex = $376inplace_add.9 :: int64
            del $376inplace_add.9
719:         enow = e[eindex]
            $384binary_subscr.12 = getitem(value=e, index=eindex) :: float64
            enow = $384binary_subscr.12 :: float64
            del $384binary_subscr.12
720:         if hh != 0.0:
            $const390.14 = const(float, 0.0) :: float64
            $392compare_op.15 = hh != $const390.14 :: bool
            del $const390.14
            branch $392compare_op.15, 398, 532
721:             h[hindex] = hh
              label 398
                del $392compare_op.15
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
722:             hindex += 1
                $const408.4 = const(int, 1) :: Literal[int](1)
                $410inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const408.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const408.4
                hindex = $410inplace_add.5 :: int64
                del $410inplace_add.5
                jump 532
              label 418
723:
724:     while findex < flen:
        del enow
        del elen
        del eindex
        del e
        del $352compare_op.2
        jump 420
      label 420
        jump 422
      label 422
        $426compare_op.2 = findex < flen :: bool
        branch $426compare_op.2, 432, 492
      label 531
        del hh
        del $466compare_op.15
        jump 422
725:         Q, hh = Two_Sum(Q, fnow)
          label 432
            del $426compare_op.2
            $432load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
            $438call_function.3 = call $432load_global.0(Q, fnow, func=$432load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(fnow, adaptive_predicates.py:675)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $432load_global.0
            $440unpack_sequence.6 = exhaust_iter(value=$438call_function.3, count=2) :: UniTuple(float64 x 2)
            del $438call_function.3
            $440unpack_sequence.4 = static_getitem(value=$440unpack_sequence.6, index=0, index_var=None) :: float64
            $440unpack_sequence.5 = static_getitem(value=$440unpack_sequence.6, index=1, index_var=None) :: float64
            del $440unpack_sequence.6
            Q = $440unpack_sequence.4 :: float64
            del $440unpack_sequence.4
            hh = $440unpack_sequence.5 :: float64
            del $440unpack_sequence.5
726:         findex += 1
            $const448.8 = const(int, 1) :: Literal[int](1)
            $450inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const448.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const448.8
            findex = $450inplace_add.9 :: int64
            del $450inplace_add.9
727:         fnow = f[findex]
            $458binary_subscr.12 = getitem(value=f, index=findex) :: float64
            fnow = $458binary_subscr.12 :: float64
            del $458binary_subscr.12
728:         if hh != 0.0:
            $const464.14 = const(float, 0.0) :: float64
            $466compare_op.15 = hh != $const464.14 :: bool
            del $const464.14
            branch $466compare_op.15, 472, 531
729:             h[hindex] = hh
              label 472
                del $466compare_op.15
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
730:             hindex += 1
                $const482.4 = const(int, 1) :: Literal[int](1)
                $484inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const482.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const482.4
                hindex = $484inplace_add.5 :: int64
                del $484inplace_add.5
                jump 531
              label 492
731:
732:     if (Q != 0.0) or (hindex == 0):
        del fnow
        del flen
        del findex
        del f
        del $426compare_op.2
        jump 494
      label 494
        $const496.1 = const(float, 0.0) :: float64
        $498compare_op.2 = Q != $const496.1 :: bool
        del $const496.1
        branch $498compare_op.2, 514, 504
      label 504
        del $498compare_op.2
        $const506.1 = const(int, 0) :: Literal[int](0)
        $508compare_op.2 = hindex == $const506.1 :: bool
        del $const506.1
        branch $508compare_op.2, 514, 530
733:         h[hindex] = Q
          label 514
            del $508compare_op.2
            del $498compare_op.2
            h[hindex] = Q :: (array(float64, 1d, C), int64, float64) -> none
            del h
            del Q
734:         hindex += 1
            $const524.4 = const(int, 1) :: Literal[int](1)
            $526inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const524.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const524.4
            hindex = $526inplace_add.5 :: int64
            del $526inplace_add.5
735:
736:     return hindex
        jump 530
      label 530
        del h
        del Q
        del $508compare_op.2
        $532return_value.1 = cast(value=hindex) :: int64
        del hindex
        return $532return_value.1



Function name: fast_expansion_sum_zeroelim
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (int64, array(float64, 1d, C), Literal[int](4), array(float64, 1d, C), array(float64, 1d, C)) -> int64
670: @njit
671: def fast_expansion_sum_zeroelim(elen, e, flen, f, h):
672:     # h cannot be e or f.
673:
674:     enow = e[0]
      label 0
        elen = arg(0, name=elen) :: int64
        e = arg(1, name=e) :: array(float64, 1d, C)
        flen = arg(2, name=flen) :: Literal[int](4)
        f = arg(3, name=f) :: array(float64, 1d, C)
        h = arg(4, name=h) :: array(float64, 1d, C)
        $const4.1 = const(int, 0) :: Literal[int](0)
        $6binary_subscr.2 = static_getitem(value=e, index=0, index_var=$const4.1) :: float64
        del $const4.1
        enow = $6binary_subscr.2 :: float64
        del $6binary_subscr.2
675:     fnow = f[0]
        $const12.4 = const(int, 0) :: Literal[int](0)
        $14binary_subscr.5 = static_getitem(value=f, index=0, index_var=$const12.4) :: float64
        del $const12.4
        fnow = $14binary_subscr.5 :: float64
        del $14binary_subscr.5
676:     eindex = 0
        $const18.6 = const(int, 0) :: Literal[int](0)
        eindex = $const18.6 :: int64
        del $const18.6
677:     findex = 0
        $const22.7 = const(int, 0) :: Literal[int](0)
        findex = $const22.7 :: int64
        del $const22.7
678:     if (fnow > enow) == (fnow > -enow):
        $30compare_op.10 = fnow > enow :: bool
        $36unary_negative.13 = unary(fn=<built-in function neg>, value=enow) :: float64
        $38compare_op.14 = fnow > $36unary_negative.13 :: bool
        del $36unary_negative.13
        $40compare_op.15 = $30compare_op.10 == $38compare_op.14 :: bool
        del $38compare_op.14
        del $30compare_op.10
        branch $40compare_op.15, 44, 66
679:         Q = enow
          label 44
            del $40compare_op.15
            Q = enow :: float64
680:         eindex += 1
            $const50.2 = const(int, 1) :: Literal[int](1)
            $52inplace_add.3 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const50.2, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const50.2
            eindex = $52inplace_add.3 :: int64
            del $52inplace_add.3
681:         enow = e[eindex]
            $60binary_subscr.6 = getitem(value=e, index=eindex) :: float64
            enow = $60binary_subscr.6 :: float64
            del $60binary_subscr.6
            jump 86
682:     else:
683:         Q = fnow
          label 66
            del $40compare_op.15
            Q = fnow :: float64
684:         findex += 1
            $const72.2 = const(int, 1) :: Literal[int](1)
            $74inplace_add.3 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const72.2, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const72.2
            findex = $74inplace_add.3 :: int64
            del $74inplace_add.3
685:         fnow = f[findex]
            $82binary_subscr.6 = getitem(value=f, index=findex) :: float64
            fnow = $82binary_subscr.6 :: float64
            del $82binary_subscr.6
686:
687:     hindex = 0
        jump 86
      label 86
        $const86.0 = const(int, 0) :: Literal[int](0)
        hindex = $const86.0 :: int64
        del $const86.0
688:     if (eindex < elen) and (findex < flen):
        $94compare_op.3 = eindex < elen :: bool
        branch $94compare_op.3, 100, 346
      label 100
        del $94compare_op.3
        $104compare_op.2 = findex < flen :: bool
        branch $104compare_op.2, 110, 346
689:         if (fnow > enow) == (fnow > -enow):
          label 110
            del $104compare_op.2
            $114compare_op.2 = fnow > enow :: bool
            $120unary_negative.5 = unary(fn=<built-in function neg>, value=enow) :: float64
            $122compare_op.6 = fnow > $120unary_negative.5 :: bool
            del $120unary_negative.5
            $124compare_op.7 = $114compare_op.2 == $122compare_op.6 :: bool
            del $122compare_op.6
            del $114compare_op.2
            branch $124compare_op.7, 128, 160
690:             Q, hh = Fast_Two_Sum(enow, Q)
              label 128
                del $124compare_op.7
                $128load_global.0 = global(Fast_Two_Sum: CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>)) :: type(CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>))
                $134call_function.3 = call $128load_global.0(enow, Q, func=$128load_global.0, args=[Var(enow, adaptive_predicates.py:674), Var(Q, adaptive_predicates.py:679)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                del $128load_global.0
                $136unpack_sequence.6 = exhaust_iter(value=$134call_function.3, count=2) :: UniTuple(float64 x 2)
                del $134call_function.3
                $136unpack_sequence.4 = static_getitem(value=$136unpack_sequence.6, index=0, index_var=None) :: float64
                $136unpack_sequence.5 = static_getitem(value=$136unpack_sequence.6, index=1, index_var=None) :: float64
                del $136unpack_sequence.6
                Q = $136unpack_sequence.4 :: float64
                del $136unpack_sequence.4
                hh = $136unpack_sequence.5 :: float64
                del $136unpack_sequence.5
691:             eindex += 1
                $const144.8 = const(int, 1) :: Literal[int](1)
                $146inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const144.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const144.8
                eindex = $146inplace_add.9 :: int64
                del $146inplace_add.9
692:             enow = e[eindex]
                $154binary_subscr.12 = getitem(value=e, index=eindex) :: float64
                enow = $154binary_subscr.12 :: float64
                del $154binary_subscr.12
                jump 190
693:         else:
694:             Q, hh = Fast_Two_Sum(fnow, Q)
              label 160
                del $124compare_op.7
                $160load_global.0 = global(Fast_Two_Sum: CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>)) :: type(CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>))
                $166call_function.3 = call $160load_global.0(fnow, Q, func=$160load_global.0, args=[Var(fnow, adaptive_predicates.py:675), Var(Q, adaptive_predicates.py:679)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                del $160load_global.0
                $168unpack_sequence.6 = exhaust_iter(value=$166call_function.3, count=2) :: UniTuple(float64 x 2)
                del $166call_function.3
                $168unpack_sequence.4 = static_getitem(value=$168unpack_sequence.6, index=0, index_var=None) :: float64
                $168unpack_sequence.5 = static_getitem(value=$168unpack_sequence.6, index=1, index_var=None) :: float64
                del $168unpack_sequence.6
                Q = $168unpack_sequence.4 :: float64
                del $168unpack_sequence.4
                hh = $168unpack_sequence.5 :: float64
                del $168unpack_sequence.5
695:             findex += 1
                $const176.8 = const(int, 1) :: Literal[int](1)
                $178inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const176.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const176.8
                findex = $178inplace_add.9 :: int64
                del $178inplace_add.9
696:             fnow = f[findex]
                $186binary_subscr.12 = getitem(value=f, index=findex) :: float64
                fnow = $186binary_subscr.12 :: float64
                del $186binary_subscr.12
697:
698:         if hh != 0.0:
            jump 190
          label 190
            $const192.1 = const(float, 0.0) :: float64
            $194compare_op.2 = hh != $const192.1 :: bool
            del $const192.1
            branch $194compare_op.2, 198, 214
699:             h[hindex] = hh
              label 198
                del $194compare_op.2
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
700:             hindex += 1
                $const208.4 = const(int, 1) :: Literal[int](1)
                $210inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const208.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const208.4
                hindex = $210inplace_add.5 :: int64
                del $210inplace_add.5
701:
702:         while (eindex < elen) and (findex < flen):
            jump 214
          label 214
            del hh
            del $194compare_op.2
            jump 216
          label 216
            $220compare_op.2 = eindex < elen :: bool
            branch $220compare_op.2, 226, 344
          label 226
            del $220compare_op.2
            $230compare_op.2 = findex < flen :: bool
            branch $230compare_op.2, 236, 344
          label 533
            del hh
            del $322compare_op.2
            jump 216
703:             if (fnow > enow) == (fnow > -enow):
              label 236
                del $230compare_op.2
                $240compare_op.2 = fnow > enow :: bool
                $246unary_negative.5 = unary(fn=<built-in function neg>, value=enow) :: float64
                $248compare_op.6 = fnow > $246unary_negative.5 :: bool
                del $246unary_negative.5
                $250compare_op.7 = $240compare_op.2 == $248compare_op.6 :: bool
                del $248compare_op.6
                del $240compare_op.2
                branch $250compare_op.7, 256, 288
704:                 Q, hh = Two_Sum(Q, enow)
                  label 256
                    del $250compare_op.7
                    $256load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
                    $262call_function.3 = call $256load_global.0(Q, enow, func=$256load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(enow, adaptive_predicates.py:674)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                    del $256load_global.0
                    $264unpack_sequence.6 = exhaust_iter(value=$262call_function.3, count=2) :: UniTuple(float64 x 2)
                    del $262call_function.3
                    $264unpack_sequence.4 = static_getitem(value=$264unpack_sequence.6, index=0, index_var=None) :: float64
                    $264unpack_sequence.5 = static_getitem(value=$264unpack_sequence.6, index=1, index_var=None) :: float64
                    del $264unpack_sequence.6
                    Q = $264unpack_sequence.4 :: float64
                    del $264unpack_sequence.4
                    hh = $264unpack_sequence.5 :: float64
                    del $264unpack_sequence.5
705:                 eindex += 1
                    $const272.8 = const(int, 1) :: Literal[int](1)
                    $274inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const272.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const272.8
                    eindex = $274inplace_add.9 :: int64
                    del $274inplace_add.9
706:                 enow = e[eindex]
                    $282binary_subscr.12 = getitem(value=e, index=eindex) :: float64
                    enow = $282binary_subscr.12 :: float64
                    del $282binary_subscr.12
                    jump 318
707:             else:
708:                 Q, hh = Two_Sum(Q, fnow)
                  label 288
                    del $250compare_op.7
                    $288load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
                    $294call_function.3 = call $288load_global.0(Q, fnow, func=$288load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(fnow, adaptive_predicates.py:675)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                    del $288load_global.0
                    $296unpack_sequence.6 = exhaust_iter(value=$294call_function.3, count=2) :: UniTuple(float64 x 2)
                    del $294call_function.3
                    $296unpack_sequence.4 = static_getitem(value=$296unpack_sequence.6, index=0, index_var=None) :: float64
                    $296unpack_sequence.5 = static_getitem(value=$296unpack_sequence.6, index=1, index_var=None) :: float64
                    del $296unpack_sequence.6
                    Q = $296unpack_sequence.4 :: float64
                    del $296unpack_sequence.4
                    hh = $296unpack_sequence.5 :: float64
                    del $296unpack_sequence.5
709:                 findex += 1
                    $const304.8 = const(int, 1) :: Literal[int](1)
                    $306inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const304.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const304.8
                    findex = $306inplace_add.9 :: int64
                    del $306inplace_add.9
710:                 fnow = f[findex]
                    $314binary_subscr.12 = getitem(value=f, index=findex) :: float64
                    fnow = $314binary_subscr.12 :: float64
                    del $314binary_subscr.12
711:
712:             if (hh != 0.0):
                jump 318
              label 318
                $const320.1 = const(float, 0.0) :: float64
                $322compare_op.2 = hh != $const320.1 :: bool
                del $const320.1
                branch $322compare_op.2, 326, 533
713:                 h[hindex] = hh
                  label 326
                    del $322compare_op.2
                    h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                    del hh
714:                 hindex += 1
                    $const336.4 = const(int, 1) :: Literal[int](1)
                    $338inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const336.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const336.4
                    hindex = $338inplace_add.5 :: int64
                    del $338inplace_add.5
                    jump 533
                  label 344
715:
716:     while eindex < elen:
        del $230compare_op.2
        del $220compare_op.2
        jump 346
      label 346
        del $94compare_op.3
        del $104compare_op.2
        jump 348
      label 348
        $352compare_op.2 = eindex < elen :: bool
        branch $352compare_op.2, 358, 418
      label 532
        del hh
        del $392compare_op.15
        jump 348
717:         Q, hh = Two_Sum(Q, enow)
          label 358
            del $352compare_op.2
            $358load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
            $364call_function.3 = call $358load_global.0(Q, enow, func=$358load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(enow, adaptive_predicates.py:674)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $358load_global.0
            $366unpack_sequence.6 = exhaust_iter(value=$364call_function.3, count=2) :: UniTuple(float64 x 2)
            del $364call_function.3
            $366unpack_sequence.4 = static_getitem(value=$366unpack_sequence.6, index=0, index_var=None) :: float64
            $366unpack_sequence.5 = static_getitem(value=$366unpack_sequence.6, index=1, index_var=None) :: float64
            del $366unpack_sequence.6
            Q = $366unpack_sequence.4 :: float64
            del $366unpack_sequence.4
            hh = $366unpack_sequence.5 :: float64
            del $366unpack_sequence.5
718:         eindex += 1
            $const374.8 = const(int, 1) :: Literal[int](1)
            $376inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const374.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const374.8
            eindex = $376inplace_add.9 :: int64
            del $376inplace_add.9
719:         enow = e[eindex]
            $384binary_subscr.12 = getitem(value=e, index=eindex) :: float64
            enow = $384binary_subscr.12 :: float64
            del $384binary_subscr.12
720:         if hh != 0.0:
            $const390.14 = const(float, 0.0) :: float64
            $392compare_op.15 = hh != $const390.14 :: bool
            del $const390.14
            branch $392compare_op.15, 398, 532
721:             h[hindex] = hh
              label 398
                del $392compare_op.15
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
722:             hindex += 1
                $const408.4 = const(int, 1) :: Literal[int](1)
                $410inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const408.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const408.4
                hindex = $410inplace_add.5 :: int64
                del $410inplace_add.5
                jump 532
              label 418
723:
724:     while findex < flen:
        del enow
        del elen
        del eindex
        del e
        del $352compare_op.2
        jump 420
      label 420
        jump 422
      label 422
        $426compare_op.2 = findex < flen :: bool
        branch $426compare_op.2, 432, 492
      label 531
        del hh
        del $466compare_op.15
        jump 422
725:         Q, hh = Two_Sum(Q, fnow)
          label 432
            del $426compare_op.2
            $432load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
            $438call_function.3 = call $432load_global.0(Q, fnow, func=$432load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(fnow, adaptive_predicates.py:675)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $432load_global.0
            $440unpack_sequence.6 = exhaust_iter(value=$438call_function.3, count=2) :: UniTuple(float64 x 2)
            del $438call_function.3
            $440unpack_sequence.4 = static_getitem(value=$440unpack_sequence.6, index=0, index_var=None) :: float64
            $440unpack_sequence.5 = static_getitem(value=$440unpack_sequence.6, index=1, index_var=None) :: float64
            del $440unpack_sequence.6
            Q = $440unpack_sequence.4 :: float64
            del $440unpack_sequence.4
            hh = $440unpack_sequence.5 :: float64
            del $440unpack_sequence.5
726:         findex += 1
            $const448.8 = const(int, 1) :: Literal[int](1)
            $450inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const448.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const448.8
            findex = $450inplace_add.9 :: int64
            del $450inplace_add.9
727:         fnow = f[findex]
            $458binary_subscr.12 = getitem(value=f, index=findex) :: float64
            fnow = $458binary_subscr.12 :: float64
            del $458binary_subscr.12
728:         if hh != 0.0:
            $const464.14 = const(float, 0.0) :: float64
            $466compare_op.15 = hh != $const464.14 :: bool
            del $const464.14
            branch $466compare_op.15, 472, 531
729:             h[hindex] = hh
              label 472
                del $466compare_op.15
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
730:             hindex += 1
                $const482.4 = const(int, 1) :: Literal[int](1)
                $484inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const482.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const482.4
                hindex = $484inplace_add.5 :: int64
                del $484inplace_add.5
                jump 531
              label 492
731:
732:     if (Q != 0.0) or (hindex == 0):
        del fnow
        del flen
        del findex
        del f
        del $426compare_op.2
        jump 494
      label 494
        $const496.1 = const(float, 0.0) :: float64
        $498compare_op.2 = Q != $const496.1 :: bool
        del $const496.1
        branch $498compare_op.2, 514, 504
      label 504
        del $498compare_op.2
        $const506.1 = const(int, 0) :: Literal[int](0)
        $508compare_op.2 = hindex == $const506.1 :: bool
        del $const506.1
        branch $508compare_op.2, 514, 530
733:         h[hindex] = Q
          label 514
            del $508compare_op.2
            del $498compare_op.2
            h[hindex] = Q :: (array(float64, 1d, C), int64, float64) -> none
            del h
            del Q
734:         hindex += 1
            $const524.4 = const(int, 1) :: Literal[int](1)
            $526inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const524.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const524.4
            hindex = $526inplace_add.5 :: int64
            del $526inplace_add.5
735:
736:     return hindex
        jump 530
      label 530
        del h
        del Q
        del $508compare_op.2
        $532return_value.1 = cast(value=hindex) :: int64
        del hindex
        return $532return_value.1



Function name: orient2dadapt
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64) -> Tuple(float64, int64)
1017: @njit
1018: def orient2dadapt(pa_x, pa_y, pb_x, pb_y, pc_x, pc_y, detsum, splitter, B, C1,
1019:                   C2, D, u, ccwerrboundB, ccwerrboundC, resulterrbound):
1020:     '''
1021:     len(B) = 4
1022:     len(C1) = 8
1023:     len(C2) = 12
1024:     len(D) = 16
1025:     len(u) = 4
1026:     '''
1027:
1028:     bcx = pb_x - pc_x
      label 0
        pa_x = arg(0, name=pa_x) :: float64
        pa_y = arg(1, name=pa_y) :: float64
        pb_x = arg(2, name=pb_x) :: float64
        pb_y = arg(3, name=pb_y) :: float64
        pc_x = arg(4, name=pc_x) :: float64
        pc_y = arg(5, name=pc_y) :: float64
        detsum = arg(6, name=detsum) :: float64
        splitter = arg(7, name=splitter) :: float64
        B = arg(8, name=B) :: array(float64, 1d, C)
        C1 = arg(9, name=C1) :: array(float64, 1d, C)
        C2 = arg(10, name=C2) :: array(float64, 1d, C)
        D = arg(11, name=D) :: array(float64, 1d, C)
        u = arg(12, name=u) :: array(float64, 1d, C)
        ccwerrboundB = arg(13, name=ccwerrboundB) :: float64
        ccwerrboundC = arg(14, name=ccwerrboundC) :: float64
        resulterrbound = arg(15, name=resulterrbound) :: float64
        $6binary_subtract.2 = pb_x - pc_x :: float64
        bcx = $6binary_subtract.2 :: float64
        del $6binary_subtract.2
1029:     acx = pa_x - pc_x
        $14binary_subtract.5 = pa_x - pc_x :: float64
        acx = $14binary_subtract.5 :: float64
        del $14binary_subtract.5
1030:     acy = pa_y - pc_y
        $22binary_subtract.8 = pa_y - pc_y :: float64
        acy = $22binary_subtract.8 :: float64
        del $22binary_subtract.8
1031:     bcy = pb_y - pc_y
        $30binary_subtract.11 = pb_y - pc_y :: float64
        bcy = $30binary_subtract.11 :: float64
        del $30binary_subtract.11
1032:
1033:     detleft, detlefttail = Two_Product(acx, bcy, splitter)
        $34load_global.12 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $42call_function.16 = call $34load_global.12(acx, bcy, splitter, func=$34load_global.12, args=[Var(acx, adaptive_predicates.py:1029), Var(bcy, adaptive_predicates.py:1031), Var(splitter, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del $34load_global.12
        $44unpack_sequence.19 = exhaust_iter(value=$42call_function.16, count=2) :: UniTuple(float64 x 2)
        del $42call_function.16
        $44unpack_sequence.17 = static_getitem(value=$44unpack_sequence.19, index=0, index_var=None) :: float64
        $44unpack_sequence.18 = static_getitem(value=$44unpack_sequence.19, index=1, index_var=None) :: float64
        del $44unpack_sequence.19
        detleft = $44unpack_sequence.17 :: float64
        del $44unpack_sequence.17
        detlefttail = $44unpack_sequence.18 :: float64
        del $44unpack_sequence.18
1034:     detright, detrighttail = Two_Product(acy, bcx, splitter)
        $50load_global.20 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $58call_function.24 = call $50load_global.20(acy, bcx, splitter, func=$50load_global.20, args=[Var(acy, adaptive_predicates.py:1030), Var(bcx, adaptive_predicates.py:1028), Var(splitter, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del $50load_global.20
        $60unpack_sequence.27 = exhaust_iter(value=$58call_function.24, count=2) :: UniTuple(float64 x 2)
        del $58call_function.24
        $60unpack_sequence.25 = static_getitem(value=$60unpack_sequence.27, index=0, index_var=None) :: float64
        $60unpack_sequence.26 = static_getitem(value=$60unpack_sequence.27, index=1, index_var=None) :: float64
        del $60unpack_sequence.27
        detright = $60unpack_sequence.25 :: float64
        del $60unpack_sequence.25
        detrighttail = $60unpack_sequence.26 :: float64
        del $60unpack_sequence.26
1035:
1036:     B[3], B[2], B[1], B[0] = Two_Two_Diff(detleft, detlefttail,
        $66load_global.28 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
1037:                                           detright, detrighttail)
                                              $76call_function.33 = call $66load_global.28(detleft, detlefttail, detright, detrighttail, func=$66load_global.28, args=[Var(detleft, adaptive_predicates.py:1033), Var(detlefttail, adaptive_predicates.py:1033), Var(detright, adaptive_predicates.py:1034), Var(detrighttail, adaptive_predicates.py:1034)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                              del detrighttail
                                              del detright
                                              del detlefttail
                                              del detleft
                                              del $66load_global.28
                                              $78unpack_sequence.38 = exhaust_iter(value=$76call_function.33, count=4) :: UniTuple(float64 x 4)
                                              del $76call_function.33
                                              $78unpack_sequence.34 = static_getitem(value=$78unpack_sequence.38, index=0, index_var=None) :: float64
                                              $78unpack_sequence.35 = static_getitem(value=$78unpack_sequence.38, index=1, index_var=None) :: float64
                                              $78unpack_sequence.36 = static_getitem(value=$78unpack_sequence.38, index=2, index_var=None) :: float64
                                              $78unpack_sequence.37 = static_getitem(value=$78unpack_sequence.38, index=3, index_var=None) :: float64
                                              del $78unpack_sequence.38
                                              $const82.40 = const(int, 3) :: Literal[int](3)
                                              B[3] = $78unpack_sequence.34
                                              del $const82.40
                                              del $78unpack_sequence.34
                                              $const88.42 = const(int, 2) :: Literal[int](2)
                                              B[2] = $78unpack_sequence.35
                                              del $const88.42
                                              del $78unpack_sequence.35
                                              $const94.44 = const(int, 1) :: Literal[int](1)
                                              B[1] = $78unpack_sequence.36
                                              del $const94.44
                                              del $78unpack_sequence.36
                                              $const100.46 = const(int, 0) :: Literal[int](0)
                                              B[0] = $78unpack_sequence.37
                                              del $const100.46
                                              del $78unpack_sequence.37
1038:
1039:     det = estimate(4, B)
        $104load_global.47 = global(estimate: CPUDispatcher(<function estimate at 0x7f51d44729e0>)) :: type(CPUDispatcher(<function estimate at 0x7f51d44729e0>))
        $const106.48 = const(int, 4) :: Literal[int](4)
        $110call_function.50 = call $104load_global.47($const106.48, B, func=$104load_global.47, args=[Var($const106.48, adaptive_predicates.py:1039), Var(B, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C)) -> float64
        del $const106.48
        del $104load_global.47
        det = $110call_function.50 :: float64
        del $110call_function.50
1040:     errbound = ccwerrboundB * detsum
        $118binary_multiply.53 = ccwerrboundB * detsum :: float64
        del ccwerrboundB
        errbound = $118binary_multiply.53 :: float64
        del $118binary_multiply.53
1041:     if (det >= errbound) or (-det >= errbound):
        $126compare_op.56 = det >= errbound :: bool
        branch $126compare_op.56, 140, 130
      label 130
        del $126compare_op.56
        $132unary_negative.1 = unary(fn=<built-in function neg>, value=det) :: float64
        $136compare_op.3 = $132unary_negative.1 >= errbound :: bool
        del errbound
        del $132unary_negative.1
        branch $136compare_op.3, 140, 148
1042:         return det, 2
          label 140
            del u
            del splitter
            del resulterrbound
            del pc_y
            del pc_x
            del pb_y
            del pb_x
            del pa_y
            del pa_x
            del errbound
            del detsum
            del ccwerrboundC
            del bcy
            del bcx
            del acy
            del acx
            del D
            del C2
            del C1
            del B
            del $136compare_op.3
            del $126compare_op.56
            $const142.1 = const(int, 2) :: Literal[int](2)
            $144build_tuple.2 = build_tuple(items=[Var(det, adaptive_predicates.py:1039), Var($const142.1, adaptive_predicates.py:1042)]) :: Tuple(float64, Literal[int](2))
            del det
            del $const142.1
            $146return_value.3 = cast(value=$144build_tuple.2) :: Tuple(float64, Literal[int](2))
            del $144build_tuple.2
            return $146return_value.3
1043:
1044:     acxtail = Two_Diff_Tail(pa_x, pc_x, acx)
      label 148
        del $136compare_op.3
        $148load_global.0 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $156call_function.4 = call $148load_global.0(pa_x, pc_x, acx, func=$148load_global.0, args=[Var(pa_x, adaptive_predicates.py:1028), Var(pc_x, adaptive_predicates.py:1028), Var(acx, adaptive_predicates.py:1029)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pa_x
        del $148load_global.0
        acxtail = $156call_function.4 :: float64
        del $156call_function.4
1045:     bcxtail = Two_Diff_Tail(pb_x, pc_x, bcx)
        $160load_global.5 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $168call_function.9 = call $160load_global.5(pb_x, pc_x, bcx, func=$160load_global.5, args=[Var(pb_x, adaptive_predicates.py:1028), Var(pc_x, adaptive_predicates.py:1028), Var(bcx, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pc_x
        del pb_x
        del $160load_global.5
        bcxtail = $168call_function.9 :: float64
        del $168call_function.9
1046:     acytail = Two_Diff_Tail(pa_y, pc_y, acy)
        $172load_global.10 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $180call_function.14 = call $172load_global.10(pa_y, pc_y, acy, func=$172load_global.10, args=[Var(pa_y, adaptive_predicates.py:1028), Var(pc_y, adaptive_predicates.py:1028), Var(acy, adaptive_predicates.py:1030)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pa_y
        del $172load_global.10
        acytail = $180call_function.14 :: float64
        del $180call_function.14
1047:     bcytail = Two_Diff_Tail(pb_y, pc_y, bcy)
        $184load_global.15 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $192call_function.19 = call $184load_global.15(pb_y, pc_y, bcy, func=$184load_global.15, args=[Var(pb_y, adaptive_predicates.py:1028), Var(pc_y, adaptive_predicates.py:1028), Var(bcy, adaptive_predicates.py:1031)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pc_y
        del pb_y
        del $184load_global.15
        bcytail = $192call_function.19 :: float64
        del $192call_function.19
1048:
1049:     if (acxtail == 0.0) and (acytail == 0.0) and \
        $const198.21 = const(float, 0.0) :: float64
        $200compare_op.22 = acxtail == $const198.21 :: bool
        del $const198.21
        branch $200compare_op.22, 204, 236
      label 204
        del $200compare_op.22
        $const206.1 = const(float, 0.0) :: float64
        $208compare_op.2 = acytail == $const206.1 :: bool
        del $const206.1
        branch $208compare_op.2, 212, 236
1050:             (bcxtail == 0.0) and (bcytail == 0.0):
              label 212
                del $208compare_op.2
                $const214.1 = const(float, 0.0) :: float64
                $216compare_op.2 = bcxtail == $const214.1 :: bool
                del $const214.1
                branch $216compare_op.2, 220, 236
              label 220
                del $216compare_op.2
                $const222.1 = const(float, 0.0) :: float64
                $224compare_op.2 = bcytail == $const222.1 :: bool
                del $const222.1
                branch $224compare_op.2, 228, 236
1051:         return det, 3
          label 228
            del u
            del splitter
            del resulterrbound
            del detsum
            del ccwerrboundC
            del bcytail
            del bcy
            del bcxtail
            del bcx
            del acytail
            del acy
            del acxtail
            del acx
            del D
            del C2
            del C1
            del B
            del $224compare_op.2
            $const230.1 = const(int, 3) :: Literal[int](3)
            $232build_tuple.2 = build_tuple(items=[Var(det, adaptive_predicates.py:1039), Var($const230.1, adaptive_predicates.py:1051)]) :: Tuple(float64, Literal[int](3))
            del det
            del $const230.1
            $234return_value.3 = cast(value=$232build_tuple.2) :: Tuple(float64, Literal[int](3))
            del $232build_tuple.2
            return $234return_value.3
1052:
1053:     errbound = ccwerrboundC * detsum + resulterrbound * np.abs(det)
      label 236
        del $224compare_op.2
        del $216compare_op.2
        del $208compare_op.2
        del $200compare_op.22
        $240binary_multiply.2 = ccwerrboundC * detsum :: float64
        del detsum
        del ccwerrboundC
        $244load_global.4 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $246load_method.5 = getattr(value=$244load_global.4, attr=abs) :: Function(<ufunc 'absolute'>)
        del $244load_global.4
        $250call_method.7 = call $246load_method.5(det, func=$246load_method.5, args=[Var(det, adaptive_predicates.py:1039)], kws=(), vararg=None) :: (float64,) -> float64
        del $246load_method.5
        $252binary_multiply.8 = resulterrbound * $250call_method.7 :: float64
        del resulterrbound
        del $250call_method.7
        $254binary_add.9 = $240binary_multiply.2 + $252binary_multiply.8 :: float64
        del $252binary_multiply.8
        del $240binary_multiply.2
        errbound = $254binary_add.9 :: float64
        del $254binary_add.9
1054:     det += (acx * bcytail + bcy * acxtail) - \
        $264binary_multiply.13 = acx * bcytail :: float64
        $270binary_multiply.16 = bcy * acxtail :: float64
        $272binary_add.17 = $264binary_multiply.13 + $270binary_multiply.16 :: float64
        del $270binary_multiply.16
        del $264binary_multiply.13
1055:            (acy * bcxtail + bcx * acytail)
               $278binary_multiply.20 = acy * bcxtail :: float64
               $284binary_multiply.23 = bcx * acytail :: float64
               $286binary_add.24 = $278binary_multiply.20 + $284binary_multiply.23 :: float64
               del $284binary_multiply.23
               del $278binary_multiply.20
               $288binary_subtract.25 = $272binary_add.17 - $286binary_add.24 :: float64
               del $286binary_add.24
               del $272binary_add.17
               $290inplace_add.26 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=det, rhs=$288binary_subtract.25, static_lhs=Undefined, static_rhs=Undefined) :: float64
               del $288binary_subtract.25
               det = $290inplace_add.26 :: float64
               del $290inplace_add.26
1056:     # if (det >= errbound) or (-det >= errbound):
1057:     if np.abs(det) >= errbound:
        $294load_global.27 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $296load_method.28 = getattr(value=$294load_global.27, attr=abs) :: Function(<ufunc 'absolute'>)
        del $294load_global.27
        $300call_method.30 = call $296load_method.28(det, func=$296load_method.28, args=[Var(det, adaptive_predicates.py:1039)], kws=(), vararg=None) :: (float64,) -> float64
        del $296load_method.28
        $304compare_op.32 = $300call_method.30 >= errbound :: bool
        del errbound
        del $300call_method.30
        branch $304compare_op.32, 310, 318
1058:         return det, 4
          label 310
            del u
            del splitter
            del bcytail
            del bcy
            del bcxtail
            del bcx
            del acytail
            del acy
            del acxtail
            del acx
            del D
            del C2
            del C1
            del B
            del $304compare_op.32
            $const312.1 = const(int, 4) :: Literal[int](4)
            $314build_tuple.2 = build_tuple(items=[Var(det, adaptive_predicates.py:1039), Var($const312.1, adaptive_predicates.py:1058)]) :: Tuple(float64, Literal[int](4))
            del det
            del $const312.1
            $316return_value.3 = cast(value=$314build_tuple.2) :: Tuple(float64, Literal[int](4))
            del $314build_tuple.2
            return $316return_value.3
1059:
1060:     s1, s0 = Two_Product(acxtail, bcy, splitter)
      label 318
        del det
        del $304compare_op.32
        $318load_global.0 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $326call_function.4 = call $318load_global.0(acxtail, bcy, splitter, func=$318load_global.0, args=[Var(acxtail, adaptive_predicates.py:1044), Var(bcy, adaptive_predicates.py:1031), Var(splitter, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del bcy
        del $318load_global.0
        $328unpack_sequence.7 = exhaust_iter(value=$326call_function.4, count=2) :: UniTuple(float64 x 2)
        del $326call_function.4
        $328unpack_sequence.5 = static_getitem(value=$328unpack_sequence.7, index=0, index_var=None) :: float64
        $328unpack_sequence.6 = static_getitem(value=$328unpack_sequence.7, index=1, index_var=None) :: float64
        del $328unpack_sequence.7
        s1 = $328unpack_sequence.5 :: float64
        del $328unpack_sequence.5
        s0 = $328unpack_sequence.6 :: float64
        del $328unpack_sequence.6
1061:     t1, t0 = Two_Product(acytail, bcx, splitter)
        $334load_global.8 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $342call_function.12 = call $334load_global.8(acytail, bcx, splitter, func=$334load_global.8, args=[Var(acytail, adaptive_predicates.py:1046), Var(bcx, adaptive_predicates.py:1028), Var(splitter, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del bcx
        del $334load_global.8
        $344unpack_sequence.15 = exhaust_iter(value=$342call_function.12, count=2) :: UniTuple(float64 x 2)
        del $342call_function.12
        $344unpack_sequence.13 = static_getitem(value=$344unpack_sequence.15, index=0, index_var=None) :: float64
        $344unpack_sequence.14 = static_getitem(value=$344unpack_sequence.15, index=1, index_var=None) :: float64
        del $344unpack_sequence.15
        t1 = $344unpack_sequence.13 :: float64
        del $344unpack_sequence.13
        t0 = $344unpack_sequence.14 :: float64
        del $344unpack_sequence.14
1062:     u[3], u[2], u[1], u[0] = Two_Two_Diff(s1, s0, t1, t0)
        $350load_global.16 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
        $360call_function.21 = call $350load_global.16(s1, s0, t1, t0, func=$350load_global.16, args=[Var(s1, adaptive_predicates.py:1060), Var(s0, adaptive_predicates.py:1060), Var(t1, adaptive_predicates.py:1061), Var(t0, adaptive_predicates.py:1061)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
        del $350load_global.16
        $362unpack_sequence.26 = exhaust_iter(value=$360call_function.21, count=4) :: UniTuple(float64 x 4)
        del $360call_function.21
        $362unpack_sequence.22 = static_getitem(value=$362unpack_sequence.26, index=0, index_var=None) :: float64
        $362unpack_sequence.23 = static_getitem(value=$362unpack_sequence.26, index=1, index_var=None) :: float64
        $362unpack_sequence.24 = static_getitem(value=$362unpack_sequence.26, index=2, index_var=None) :: float64
        $362unpack_sequence.25 = static_getitem(value=$362unpack_sequence.26, index=3, index_var=None) :: float64
        del $362unpack_sequence.26
        $const366.28 = const(int, 3) :: Literal[int](3)
        u[3] = $362unpack_sequence.22
        del $const366.28
        del $362unpack_sequence.22
        $const372.30 = const(int, 2) :: Literal[int](2)
        u[2] = $362unpack_sequence.23
        del $const372.30
        del $362unpack_sequence.23
        $const378.32 = const(int, 1) :: Literal[int](1)
        u[1] = $362unpack_sequence.24
        del $const378.32
        del $362unpack_sequence.24
        $const384.34 = const(int, 0) :: Literal[int](0)
        u[0] = $362unpack_sequence.25
        del $const384.34
        del $362unpack_sequence.25
1063:     C1length = fast_expansion_sum_zeroelim(4, B, 4, u, C1)
        $388load_global.35 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
        $const390.36 = const(int, 4) :: Literal[int](4)
        $const394.38 = const(int, 4) :: Literal[int](4)
        $400call_function.41 = call $388load_global.35($const390.36, B, $const394.38, u, C1, func=$388load_global.35, args=[Var($const390.36, adaptive_predicates.py:1063), Var(B, adaptive_predicates.py:1028), Var($const394.38, adaptive_predicates.py:1063), Var(u, adaptive_predicates.py:1028), Var(C1, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), Literal[int](4), array(float64, 1d, C), array(float64, 1d, C)) -> int64
        del B
        del $const394.38
        del $const390.36
        del $388load_global.35
        C1length = $400call_function.41 :: int64
        del $400call_function.41
1064:
1065:     s1, s0 = Two_Product(acx, bcytail, splitter)
        $404load_global.42 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $412call_function.46 = call $404load_global.42(acx, bcytail, splitter, func=$404load_global.42, args=[Var(acx, adaptive_predicates.py:1029), Var(bcytail, adaptive_predicates.py:1047), Var(splitter, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del acx
        del $404load_global.42
        $414unpack_sequence.49 = exhaust_iter(value=$412call_function.46, count=2) :: UniTuple(float64 x 2)
        del $412call_function.46
        $414unpack_sequence.47 = static_getitem(value=$414unpack_sequence.49, index=0, index_var=None) :: float64
        $414unpack_sequence.48 = static_getitem(value=$414unpack_sequence.49, index=1, index_var=None) :: float64
        del $414unpack_sequence.49
        s1 = $414unpack_sequence.47 :: float64
        del $414unpack_sequence.47
        s0 = $414unpack_sequence.48 :: float64
        del $414unpack_sequence.48
1066:     t1, t0 = Two_Product(acy, bcxtail, splitter)
        $420load_global.50 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $428call_function.54 = call $420load_global.50(acy, bcxtail, splitter, func=$420load_global.50, args=[Var(acy, adaptive_predicates.py:1030), Var(bcxtail, adaptive_predicates.py:1045), Var(splitter, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del acy
        del $420load_global.50
        $430unpack_sequence.57 = exhaust_iter(value=$428call_function.54, count=2) :: UniTuple(float64 x 2)
        del $428call_function.54
        $430unpack_sequence.55 = static_getitem(value=$430unpack_sequence.57, index=0, index_var=None) :: float64
        $430unpack_sequence.56 = static_getitem(value=$430unpack_sequence.57, index=1, index_var=None) :: float64
        del $430unpack_sequence.57
        t1 = $430unpack_sequence.55 :: float64
        del $430unpack_sequence.55
        t0 = $430unpack_sequence.56 :: float64
        del $430unpack_sequence.56
1067:     u[3], u[2], u[1], u[0] = Two_Two_Diff(s1, s0, t1, t0)
        $436load_global.58 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
        $446call_function.63 = call $436load_global.58(s1, s0, t1, t0, func=$436load_global.58, args=[Var(s1, adaptive_predicates.py:1060), Var(s0, adaptive_predicates.py:1060), Var(t1, adaptive_predicates.py:1061), Var(t0, adaptive_predicates.py:1061)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
        del $436load_global.58
        $448unpack_sequence.68 = exhaust_iter(value=$446call_function.63, count=4) :: UniTuple(float64 x 4)
        del $446call_function.63
        $448unpack_sequence.64 = static_getitem(value=$448unpack_sequence.68, index=0, index_var=None) :: float64
        $448unpack_sequence.65 = static_getitem(value=$448unpack_sequence.68, index=1, index_var=None) :: float64
        $448unpack_sequence.66 = static_getitem(value=$448unpack_sequence.68, index=2, index_var=None) :: float64
        $448unpack_sequence.67 = static_getitem(value=$448unpack_sequence.68, index=3, index_var=None) :: float64
        del $448unpack_sequence.68
        $const452.70 = const(int, 3) :: Literal[int](3)
        u[3] = $448unpack_sequence.64
        del $const452.70
        del $448unpack_sequence.64
        $const458.72 = const(int, 2) :: Literal[int](2)
        u[2] = $448unpack_sequence.65
        del $const458.72
        del $448unpack_sequence.65
        $const464.74 = const(int, 1) :: Literal[int](1)
        u[1] = $448unpack_sequence.66
        del $const464.74
        del $448unpack_sequence.66
        $const470.76 = const(int, 0) :: Literal[int](0)
        u[0] = $448unpack_sequence.67
        del $const470.76
        del $448unpack_sequence.67
1068:     C2length = fast_expansion_sum_zeroelim(C1length, C1, 4, u, C2)
        $474load_global.77 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
        $const480.80 = const(int, 4) :: Literal[int](4)
        $486call_function.83 = call $474load_global.77(C1length, C1, $const480.80, u, C2, func=$474load_global.77, args=[Var(C1length, adaptive_predicates.py:1063), Var(C1, adaptive_predicates.py:1028), Var($const480.80, adaptive_predicates.py:1068), Var(u, adaptive_predicates.py:1028), Var(C2, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), Literal[int](4), array(float64, 1d, C), array(float64, 1d, C)) -> int64
        del C1length
        del C1
        del $const480.80
        del $474load_global.77
        C2length = $486call_function.83 :: int64
        del $486call_function.83
1069:
1070:     s1, s0 = Two_Product(acxtail, bcytail, splitter)
        $490load_global.84 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $498call_function.88 = call $490load_global.84(acxtail, bcytail, splitter, func=$490load_global.84, args=[Var(acxtail, adaptive_predicates.py:1044), Var(bcytail, adaptive_predicates.py:1047), Var(splitter, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del bcytail
        del acxtail
        del $490load_global.84
        $500unpack_sequence.91 = exhaust_iter(value=$498call_function.88, count=2) :: UniTuple(float64 x 2)
        del $498call_function.88
        $500unpack_sequence.89 = static_getitem(value=$500unpack_sequence.91, index=0, index_var=None) :: float64
        $500unpack_sequence.90 = static_getitem(value=$500unpack_sequence.91, index=1, index_var=None) :: float64
        del $500unpack_sequence.91
        s1 = $500unpack_sequence.89 :: float64
        del $500unpack_sequence.89
        s0 = $500unpack_sequence.90 :: float64
        del $500unpack_sequence.90
1071:     t1, t0 = Two_Product(acytail, bcxtail, splitter)
        $506load_global.92 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $514call_function.96 = call $506load_global.92(acytail, bcxtail, splitter, func=$506load_global.92, args=[Var(acytail, adaptive_predicates.py:1046), Var(bcxtail, adaptive_predicates.py:1045), Var(splitter, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del splitter
        del bcxtail
        del acytail
        del $506load_global.92
        $516unpack_sequence.99 = exhaust_iter(value=$514call_function.96, count=2) :: UniTuple(float64 x 2)
        del $514call_function.96
        $516unpack_sequence.97 = static_getitem(value=$516unpack_sequence.99, index=0, index_var=None) :: float64
        $516unpack_sequence.98 = static_getitem(value=$516unpack_sequence.99, index=1, index_var=None) :: float64
        del $516unpack_sequence.99
        t1 = $516unpack_sequence.97 :: float64
        del $516unpack_sequence.97
        t0 = $516unpack_sequence.98 :: float64
        del $516unpack_sequence.98
1072:     u[3], u[2], u[1], u[0] = Two_Two_Diff(s1, s0, t1, t0)
        $522load_global.100 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
        $532call_function.105 = call $522load_global.100(s1, s0, t1, t0, func=$522load_global.100, args=[Var(s1, adaptive_predicates.py:1060), Var(s0, adaptive_predicates.py:1060), Var(t1, adaptive_predicates.py:1061), Var(t0, adaptive_predicates.py:1061)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
        del t1
        del t0
        del s1
        del s0
        del $522load_global.100
        $534unpack_sequence.110 = exhaust_iter(value=$532call_function.105, count=4) :: UniTuple(float64 x 4)
        del $532call_function.105
        $534unpack_sequence.106 = static_getitem(value=$534unpack_sequence.110, index=0, index_var=None) :: float64
        $534unpack_sequence.107 = static_getitem(value=$534unpack_sequence.110, index=1, index_var=None) :: float64
        $534unpack_sequence.108 = static_getitem(value=$534unpack_sequence.110, index=2, index_var=None) :: float64
        $534unpack_sequence.109 = static_getitem(value=$534unpack_sequence.110, index=3, index_var=None) :: float64
        del $534unpack_sequence.110
        $const538.112 = const(int, 3) :: Literal[int](3)
        u[3] = $534unpack_sequence.106
        del $const538.112
        del $534unpack_sequence.106
        $const544.114 = const(int, 2) :: Literal[int](2)
        u[2] = $534unpack_sequence.107
        del $const544.114
        del $534unpack_sequence.107
        $const550.116 = const(int, 1) :: Literal[int](1)
        u[1] = $534unpack_sequence.108
        del $const550.116
        del $534unpack_sequence.108
        $const556.118 = const(int, 0) :: Literal[int](0)
        u[0] = $534unpack_sequence.109
        del $const556.118
        del $534unpack_sequence.109
1073:     Dlength = fast_expansion_sum_zeroelim(C2length, C2, 4, u, D)
        $560load_global.119 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
        $const566.122 = const(int, 4) :: Literal[int](4)
        $572call_function.125 = call $560load_global.119(C2length, C2, $const566.122, u, D, func=$560load_global.119, args=[Var(C2length, adaptive_predicates.py:1068), Var(C2, adaptive_predicates.py:1028), Var($const566.122, adaptive_predicates.py:1073), Var(u, adaptive_predicates.py:1028), Var(D, adaptive_predicates.py:1028)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), Literal[int](4), array(float64, 1d, C), array(float64, 1d, C)) -> int64
        del u
        del C2length
        del C2
        del $const566.122
        del $560load_global.119
        Dlength = $572call_function.125 :: int64
        del $572call_function.125
1074:
1075:     return D[Dlength - 1], 5
        $const580.128 = const(int, 1) :: Literal[int](1)
        $582binary_subtract.129 = Dlength - $const580.128 :: int64
        del Dlength
        del $const580.128
        $584binary_subscr.130 = getitem(value=D, index=$582binary_subtract.129) :: float64
        del D
        del $582binary_subtract.129
        $const586.131 = const(int, 5) :: Literal[int](5)
        $588build_tuple.132 = build_tuple(items=[Var($584binary_subscr.130, adaptive_predicates.py:1075), Var($const586.131, adaptive_predicates.py:1075)]) :: Tuple(float64, Literal[int](5))
        del $const586.131
        del $584binary_subscr.130
        $590return_value.133 = cast(value=$588build_tuple.132) :: Tuple(float64, Literal[int](5))
        del $588build_tuple.132
        return $590return_value.133



Function name: orient2d
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64) -> Tuple(float64, int64)
1078: @njit
1079: def orient2d(pa_x, pa_y, pb_x, pb_y, pc_x, pc_y, splitter, B, C1, C2, D, u,
1080:              ccwerrboundA, ccwerrboundB, ccwerrboundC, resulterrbound, det,
1081:              detsum):
1082:     '''
1083:     len(B) = 4
1084:     len(C1) = 8
1085:     len(C2) = 12
1086:     len(D) = 16
1087:     len(u) = 4
1088:     '''
1089:
1090:     errbound = ccwerrboundA * detsum
      label 0
        pa_x = arg(0, name=pa_x) :: float64
        pa_y = arg(1, name=pa_y) :: float64
        pb_x = arg(2, name=pb_x) :: float64
        pb_y = arg(3, name=pb_y) :: float64
        pc_x = arg(4, name=pc_x) :: float64
        pc_y = arg(5, name=pc_y) :: float64
        splitter = arg(6, name=splitter) :: float64
        B = arg(7, name=B) :: array(float64, 1d, C)
        C1 = arg(8, name=C1) :: array(float64, 1d, C)
        C2 = arg(9, name=C2) :: array(float64, 1d, C)
        D = arg(10, name=D) :: array(float64, 1d, C)
        u = arg(11, name=u) :: array(float64, 1d, C)
        ccwerrboundA = arg(12, name=ccwerrboundA) :: float64
        ccwerrboundB = arg(13, name=ccwerrboundB) :: float64
        ccwerrboundC = arg(14, name=ccwerrboundC) :: float64
        resulterrbound = arg(15, name=resulterrbound) :: float64
        det = arg(16, name=det) :: float64
        detsum = arg(17, name=detsum) :: float64
        $6binary_multiply.2 = ccwerrboundA * detsum :: float64
        del ccwerrboundA
        errbound = $6binary_multiply.2 :: float64
        del $6binary_multiply.2
1091:     if np.abs(det) >= errbound:
        $10load_global.3 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $12load_method.4 = getattr(value=$10load_global.3, attr=abs) :: Function(<ufunc 'absolute'>)
        del $10load_global.3
        $16call_method.6 = call $12load_method.4(det, func=$12load_method.4, args=[Var(det, adaptive_predicates.py:1090)], kws=(), vararg=None) :: (float64,) -> float64
        del $12load_method.4
        $20compare_op.8 = $16call_method.6 >= errbound :: bool
        del errbound
        del $16call_method.6
        branch $20compare_op.8, 24, 32
1092:         return det, 1
          label 24
            del u
            del splitter
            del resulterrbound
            del pc_y
            del pc_x
            del pb_y
            del pb_x
            del pa_y
            del pa_x
            del detsum
            del ccwerrboundC
            del ccwerrboundB
            del D
            del C2
            del C1
            del B
            del $20compare_op.8
            $const26.1 = const(int, 1) :: Literal[int](1)
            $28build_tuple.2 = build_tuple(items=[Var(det, adaptive_predicates.py:1090), Var($const26.1, adaptive_predicates.py:1092)]) :: Tuple(float64, Literal[int](1))
            del det
            del $const26.1
            $30return_value.3 = cast(value=$28build_tuple.2) :: Tuple(float64, Literal[int](1))
            del $28build_tuple.2
            return $30return_value.3
1093:
1094:     return orient2dadapt(pa_x, pa_y, pb_x, pb_y, pc_x, pc_y, detsum, splitter,
      label 32
        del det
        del $20compare_op.8
        $32load_global.0 = global(orient2dadapt: CPUDispatcher(<function orient2dadapt at 0x7f51d4472cb0>)) :: type(CPUDispatcher(<function orient2dadapt at 0x7f51d4472cb0>))
1095:                          B, C1, C2, D, u, ccwerrboundB, ccwerrboundC,
1096:                          resulterrbound)
                             $66call_function.17 = call $32load_global.0(pa_x, pa_y, pb_x, pb_y, pc_x, pc_y, detsum, splitter, B, C1, C2, D, u, ccwerrboundB, ccwerrboundC, resulterrbound, func=$32load_global.0, args=[Var(pa_x, adaptive_predicates.py:1090), Var(pa_y, adaptive_predicates.py:1090), Var(pb_x, adaptive_predicates.py:1090), Var(pb_y, adaptive_predicates.py:1090), Var(pc_x, adaptive_predicates.py:1090), Var(pc_y, adaptive_predicates.py:1090), Var(detsum, adaptive_predicates.py:1090), Var(splitter, adaptive_predicates.py:1090), Var(B, adaptive_predicates.py:1090), Var(C1, adaptive_predicates.py:1090), Var(C2, adaptive_predicates.py:1090), Var(D, adaptive_predicates.py:1090), Var(u, adaptive_predicates.py:1090), Var(ccwerrboundB, adaptive_predicates.py:1090), Var(ccwerrboundC, adaptive_predicates.py:1090), Var(resulterrbound, adaptive_predicates.py:1090)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64) -> Tuple(float64, int64)
                             del u
                             del splitter
                             del resulterrbound
                             del pc_y
                             del pc_x
                             del pb_y
                             del pb_x
                             del pa_y
                             del pa_x
                             del detsum
                             del ccwerrboundC
                             del ccwerrboundB
                             del D
                             del C2
                             del C1
                             del B
                             del $32load_global.0
                             $68return_value.18 = cast(value=$66call_function.17) :: Tuple(float64, int64)
                             del $66call_function.17
                             return $68return_value.18



Function name: _walk
in file: final_2D_robust_multidimarr.py
with signature: (int64, int64, array(int64, 2d, C), array(int64, 2d, C), array(float64, 2d, C), int64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, array(int64, 1d, C)) -> int64
14: @njit
15: def _walk(
16:         point_id, t_index, vertices_ID, neighbour_ID, points, gv, splitter, B,
17:         C1, C2, D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC,
18:         resulterrbound, static_filter_o2d, orient2d_count):
19:     '''
20:     Walks from the given tri (t_index) to the tri enclosing the given point.
21:
22:         point_id : The index (corresponding to the points array) of the
23:                    point to be inserted into the triangulation.
24:          t_index : The index of the tri to start the walk from.
25:      vertices_ID : The global array storing all the indices (corresponding
26:                    to the points array) of the vertices of all the tri.
27:     neighbour_ID : The global array storing the indices of the neighbouring
28:                    tri.
29:           points : The global array storing the co-ordinates of all the
30:                    points to be triangulated.
31:               gv : Index assigned to the ghost vertex.
32:     '''
33:
34:     gv_idx = 3
      label 0
        point_id = arg(0, name=point_id) :: int64
        t_index = arg(1, name=t_index) :: int64
        vertices_ID = arg(2, name=vertices_ID) :: array(int64, 2d, C)
        neighbour_ID = arg(3, name=neighbour_ID) :: array(int64, 2d, C)
        points = arg(4, name=points) :: array(float64, 2d, C)
        gv = arg(5, name=gv) :: int64
        splitter = arg(6, name=splitter) :: float64
        B = arg(7, name=B) :: array(float64, 1d, C)
        C1 = arg(8, name=C1) :: array(float64, 1d, C)
        C2 = arg(9, name=C2) :: array(float64, 1d, C)
        D = arg(10, name=D) :: array(float64, 1d, C)
        u = arg(11, name=u) :: array(float64, 1d, C)
        ccwerrboundA = arg(12, name=ccwerrboundA) :: float64
        ccwerrboundB = arg(13, name=ccwerrboundB) :: float64
        ccwerrboundC = arg(14, name=ccwerrboundC) :: float64
        resulterrbound = arg(15, name=resulterrbound) :: float64
        static_filter_o2d = arg(16, name=static_filter_o2d) :: float64
        orient2d_count = arg(17, name=orient2d_count) :: array(int64, 1d, C)
        $const2.0 = const(int, 3) :: Literal[int](3)
        gv_idx = $const2.0 :: int64
        del $const2.0
35:     if vertices_ID[t_index, 0] == gv:
        $const10.3 = const(int, 0) :: Literal[int](0)
        $12build_tuple.4 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const10.3, final_2D_robust_multidimarr.py:35)]) :: Tuple(int64, Literal[int](0))
        del $const10.3
        $14binary_subscr.5 = getitem(value=vertices_ID, index=$12build_tuple.4) :: int64
        del $12build_tuple.4
        $18compare_op.7 = $14binary_subscr.5 == gv :: bool
        del $14binary_subscr.5
        branch $18compare_op.7, 22, 28
36:         gv_idx = 0
          label 22
            del $18compare_op.7
            $const22.0 = const(int, 0) :: Literal[int](0)
            gv_idx = $const22.0 :: int64
            del $const22.0
            jump 70
37:     elif vertices_ID[t_index, 1] == gv:
      label 28
        del $18compare_op.7
        $const32.2 = const(int, 1) :: Literal[int](1)
        $34build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const32.2, final_2D_robust_multidimarr.py:37)]) :: Tuple(int64, Literal[int](1))
        del $const32.2
        $36binary_subscr.4 = getitem(value=vertices_ID, index=$34build_tuple.3) :: int64
        del $34build_tuple.3
        $40compare_op.6 = $36binary_subscr.4 == gv :: bool
        del $36binary_subscr.4
        branch $40compare_op.6, 44, 50
38:         gv_idx = 1
          label 44
            del $40compare_op.6
            $const44.0 = const(int, 1) :: Literal[int](1)
            gv_idx = $const44.0 :: int64
            del $const44.0
            jump 70
39:     elif vertices_ID[t_index, 2] == gv:
      label 50
        del $40compare_op.6
        $const54.2 = const(int, 2) :: Literal[int](2)
        $56build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const54.2, final_2D_robust_multidimarr.py:39)]) :: Tuple(int64, Literal[int](2))
        del $const54.2
        $58binary_subscr.4 = getitem(value=vertices_ID, index=$56build_tuple.3) :: int64
        del $56build_tuple.3
        $62compare_op.6 = $58binary_subscr.4 == gv :: bool
        del $58binary_subscr.4
        branch $62compare_op.6, 66, 70
40:         gv_idx = 2
          label 66
            del $62compare_op.6
            $const66.0 = const(int, 2) :: Literal[int](2)
            gv_idx = $const66.0 :: int64
            del $const66.0
41:
42:     if gv_idx != 3:
        jump 70
      label 70
        del $62compare_op.6
        $const72.1 = const(int, 3) :: Literal[int](3)
        $74compare_op.2 = gv_idx != $const72.1 :: bool
        del $const72.1
        branch $74compare_op.2, 78, 94
43:         # t_index is a ghost tri, in this case simply step into the adjacent
44:         # real triangle.
45:         t_index = neighbour_ID[t_index, gv_idx]//3
          label 78
            del $74compare_op.2
            $84build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var(gv_idx, final_2D_robust_multidimarr.py:34)]) :: UniTuple(int64 x 2)
            del gv_idx
            $86binary_subscr.4 = getitem(value=neighbour_ID, index=$84build_tuple.3) :: int64
            del $84build_tuple.3
            $const88.5 = const(int, 3) :: Literal[int](3)
            $90binary_floor_divide.6 = $86binary_subscr.4 // $const88.5 :: int64
            del $const88.5
            del $86binary_subscr.4
            t_index = $90binary_floor_divide.6 :: int64
            del $90binary_floor_divide.6
46:
47:     point_x = points[point_id, 0]
        jump 94
      label 94
        del gv_idx
        del $74compare_op.2
        $const98.2 = const(int, 0) :: Literal[int](0)
        $100build_tuple.3 = build_tuple(items=[Var(point_id, final_2D_robust_multidimarr.py:34), Var($const98.2, final_2D_robust_multidimarr.py:47)]) :: Tuple(int64, Literal[int](0))
        del $const98.2
        $102binary_subscr.4 = getitem(value=points, index=$100build_tuple.3) :: float64
        del $100build_tuple.3
        point_x = $102binary_subscr.4 :: float64
        del $102binary_subscr.4
48:     point_y = points[point_id, 1]
        $const110.7 = const(int, 1) :: Literal[int](1)
        $112build_tuple.8 = build_tuple(items=[Var(point_id, final_2D_robust_multidimarr.py:34), Var($const110.7, final_2D_robust_multidimarr.py:48)]) :: Tuple(int64, Literal[int](1))
        del point_id
        del $const110.7
        $114binary_subscr.9 = getitem(value=points, index=$112build_tuple.8) :: float64
        del $112build_tuple.8
        point_y = $114binary_subscr.9 :: float64
        del $114binary_subscr.9
49:
50:     while True:
        jump 118
      label 118
51:         # i.e. t_index is a real tri
52:
53:         t_op_index_in_t = 4
            jump 122
          label 122
            del $806compare_op.6
            $const122.0 = const(int, 4) :: Literal[int](4)
            t_op_index_in_t = $const122.0 :: int64
            del $const122.0
54:
55:         a_x = points[vertices_ID[t_index, 0], 0]
            $const132.4 = const(int, 0) :: Literal[int](0)
            $134build_tuple.5 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const132.4, final_2D_robust_multidimarr.py:55)]) :: Tuple(int64, Literal[int](0))
            del $const132.4
            $136binary_subscr.6 = getitem(value=vertices_ID, index=$134build_tuple.5) :: int64
            del $134build_tuple.5
            $const138.7 = const(int, 0) :: Literal[int](0)
            $140build_tuple.8 = build_tuple(items=[Var($136binary_subscr.6, final_2D_robust_multidimarr.py:55), Var($const138.7, final_2D_robust_multidimarr.py:55)]) :: Tuple(int64, Literal[int](0))
            del $const138.7
            del $136binary_subscr.6
            $142binary_subscr.9 = getitem(value=points, index=$140build_tuple.8) :: float64
            del $140build_tuple.8
            a_x = $142binary_subscr.9 :: float64
            del $142binary_subscr.9
56:         a_y = points[vertices_ID[t_index, 0], 1]
            $const152.13 = const(int, 0) :: Literal[int](0)
            $154build_tuple.14 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const152.13, final_2D_robust_multidimarr.py:56)]) :: Tuple(int64, Literal[int](0))
            del $const152.13
            $156binary_subscr.15 = getitem(value=vertices_ID, index=$154build_tuple.14) :: int64
            del $154build_tuple.14
            $const158.16 = const(int, 1) :: Literal[int](1)
            $160build_tuple.17 = build_tuple(items=[Var($156binary_subscr.15, final_2D_robust_multidimarr.py:56), Var($const158.16, final_2D_robust_multidimarr.py:56)]) :: Tuple(int64, Literal[int](1))
            del $const158.16
            del $156binary_subscr.15
            $162binary_subscr.18 = getitem(value=points, index=$160build_tuple.17) :: float64
            del $160build_tuple.17
            a_y = $162binary_subscr.18 :: float64
            del $162binary_subscr.18
57:         b_x = points[vertices_ID[t_index, 1], 0]
            $const172.22 = const(int, 1) :: Literal[int](1)
            $174build_tuple.23 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const172.22, final_2D_robust_multidimarr.py:57)]) :: Tuple(int64, Literal[int](1))
            del $const172.22
            $176binary_subscr.24 = getitem(value=vertices_ID, index=$174build_tuple.23) :: int64
            del $174build_tuple.23
            $const178.25 = const(int, 0) :: Literal[int](0)
            $180build_tuple.26 = build_tuple(items=[Var($176binary_subscr.24, final_2D_robust_multidimarr.py:57), Var($const178.25, final_2D_robust_multidimarr.py:57)]) :: Tuple(int64, Literal[int](0))
            del $const178.25
            del $176binary_subscr.24
            $182binary_subscr.27 = getitem(value=points, index=$180build_tuple.26) :: float64
            del $180build_tuple.26
            b_x = $182binary_subscr.27 :: float64
            del $182binary_subscr.27
58:         b_y = points[vertices_ID[t_index, 1], 1]
            $const192.31 = const(int, 1) :: Literal[int](1)
            $194build_tuple.32 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const192.31, final_2D_robust_multidimarr.py:58)]) :: Tuple(int64, Literal[int](1))
            del $const192.31
            $196binary_subscr.33 = getitem(value=vertices_ID, index=$194build_tuple.32) :: int64
            del $194build_tuple.32
            $const198.34 = const(int, 1) :: Literal[int](1)
            $200build_tuple.35 = build_tuple(items=[Var($196binary_subscr.33, final_2D_robust_multidimarr.py:58), Var($const198.34, final_2D_robust_multidimarr.py:58)]) :: Tuple(int64, Literal[int](1))
            del $const198.34
            del $196binary_subscr.33
            $202binary_subscr.36 = getitem(value=points, index=$200build_tuple.35) :: float64
            del $200build_tuple.35
            b_y = $202binary_subscr.36 :: float64
            del $202binary_subscr.36
59:         c_x = points[vertices_ID[t_index, 2], 0]
            $const212.40 = const(int, 2) :: Literal[int](2)
            $214build_tuple.41 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const212.40, final_2D_robust_multidimarr.py:59)]) :: Tuple(int64, Literal[int](2))
            del $const212.40
            $216binary_subscr.42 = getitem(value=vertices_ID, index=$214build_tuple.41) :: int64
            del $214build_tuple.41
            $const218.43 = const(int, 0) :: Literal[int](0)
            $220build_tuple.44 = build_tuple(items=[Var($216binary_subscr.42, final_2D_robust_multidimarr.py:59), Var($const218.43, final_2D_robust_multidimarr.py:59)]) :: Tuple(int64, Literal[int](0))
            del $const218.43
            del $216binary_subscr.42
            $222binary_subscr.45 = getitem(value=points, index=$220build_tuple.44) :: float64
            del $220build_tuple.44
            c_x = $222binary_subscr.45 :: float64
            del $222binary_subscr.45
60:         c_y = points[vertices_ID[t_index, 2], 1]
            $const232.49 = const(int, 2) :: Literal[int](2)
            $234build_tuple.50 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const232.49, final_2D_robust_multidimarr.py:60)]) :: Tuple(int64, Literal[int](2))
            del $const232.49
            $236binary_subscr.51 = getitem(value=vertices_ID, index=$234build_tuple.50) :: int64
            del $234build_tuple.50
            $const238.52 = const(int, 1) :: Literal[int](1)
            $240build_tuple.53 = build_tuple(items=[Var($236binary_subscr.51, final_2D_robust_multidimarr.py:60), Var($const238.52, final_2D_robust_multidimarr.py:60)]) :: Tuple(int64, Literal[int](1))
            del $const238.52
            del $236binary_subscr.51
            $242binary_subscr.54 = getitem(value=points, index=$240build_tuple.53) :: float64
            del $240build_tuple.53
            c_y = $242binary_subscr.54 :: float64
            del $242binary_subscr.54
61:
62:         det_left = (point_x-b_x)*(c_y-b_y)
            $250binary_subtract.57 = point_x - b_x :: float64
            $256binary_subtract.60 = c_y - b_y :: float64
            $258binary_multiply.61 = $250binary_subtract.57 * $256binary_subtract.60 :: float64
            del $256binary_subtract.60
            del $250binary_subtract.57
            det_left = $258binary_multiply.61 :: float64
            del $258binary_multiply.61
63:         det_right = (point_y-b_y)*(c_x-b_x)
            $266binary_subtract.64 = point_y - b_y :: float64
            $272binary_subtract.67 = c_x - b_x :: float64
            $274binary_multiply.68 = $266binary_subtract.64 * $272binary_subtract.67 :: float64
            del $272binary_subtract.67
            del $266binary_subtract.64
            det_right = $274binary_multiply.68 :: float64
            del $274binary_multiply.68
64:         det = det_left - det_right
            $282binary_subtract.71 = det_left - det_right :: float64
            det = $282binary_subtract.71 :: float64
            del $282binary_subtract.71
65:         num = 0
            $const286.72 = const(int, 0) :: Literal[int](0)
            num = $const286.72 :: int64
            del $const286.72
66:         if np.abs(det) < static_filter_o2d:
            $290load_global.73 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
            $292load_method.74 = getattr(value=$290load_global.73, attr=abs) :: Function(<ufunc 'absolute'>)
            del $290load_global.73
            $296call_method.76 = call $292load_method.74(det, func=$292load_method.74, args=[Var(det, final_2D_robust_multidimarr.py:64)], kws=(), vararg=None) :: (float64,) -> float64
            del $292load_method.74
            $300compare_op.78 = $296call_method.76 < static_filter_o2d :: bool
            del $296call_method.76
            branch $300compare_op.78, 306, 372
67:             detsum = np.abs(det_left) + np.abs(det_right)
              label 306
                del $300compare_op.78
                $306load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                $308load_method.1 = getattr(value=$306load_global.0, attr=abs) :: Function(<ufunc 'absolute'>)
                del $306load_global.0
                $312call_method.3 = call $308load_method.1(det_left, func=$308load_method.1, args=[Var(det_left, final_2D_robust_multidimarr.py:62)], kws=(), vararg=None) :: (float64,) -> float64
                del det_left
                del $308load_method.1
                $314load_global.4 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                $316load_method.5 = getattr(value=$314load_global.4, attr=abs) :: Function(<ufunc 'absolute'>)
                del $314load_global.4
                $320call_method.7 = call $316load_method.5(det_right, func=$316load_method.5, args=[Var(det_right, final_2D_robust_multidimarr.py:63)], kws=(), vararg=None) :: (float64,) -> float64
                del det_right
                del $316load_method.5
                $322binary_add.8 = $312call_method.3 + $320call_method.7 :: float64
                del $320call_method.7
                del $312call_method.3
                detsum = $322binary_add.8 :: float64
                del $322binary_add.8
68:             det, num = orient2d(
                $326load_global.9 = global(orient2d: CPUDispatcher(<function orient2d at 0x7f51d4472f80>)) :: type(CPUDispatcher(<function orient2d at 0x7f51d4472f80>))
69:                 point_x, point_y, c_x, c_y, b_x, b_y, splitter, B, C1, C2, D,
70:                 u, ccwerrboundA, ccwerrboundB, ccwerrboundC, resulterrbound,
71:                 det, detsum)
                    $364call_function.28 = call $326load_global.9(point_x, point_y, c_x, c_y, b_x, b_y, splitter, B, C1, C2, D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC, resulterrbound, det, detsum, func=$326load_global.9, args=[Var(point_x, final_2D_robust_multidimarr.py:47), Var(point_y, final_2D_robust_multidimarr.py:48), Var(c_x, final_2D_robust_multidimarr.py:59), Var(c_y, final_2D_robust_multidimarr.py:60), Var(b_x, final_2D_robust_multidimarr.py:57), Var(b_y, final_2D_robust_multidimarr.py:58), Var(splitter, final_2D_robust_multidimarr.py:34), Var(B, final_2D_robust_multidimarr.py:34), Var(C1, final_2D_robust_multidimarr.py:34), Var(C2, final_2D_robust_multidimarr.py:34), Var(D, final_2D_robust_multidimarr.py:34), Var(u, final_2D_robust_multidimarr.py:34), Var(ccwerrboundA, final_2D_robust_multidimarr.py:34), Var(ccwerrboundB, final_2D_robust_multidimarr.py:34), Var(ccwerrboundC, final_2D_robust_multidimarr.py:34), Var(resulterrbound, final_2D_robust_multidimarr.py:34), Var(det, final_2D_robust_multidimarr.py:64), Var(detsum, final_2D_robust_multidimarr.py:67)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64) -> Tuple(float64, int64)
                    del detsum
                    del $326load_global.9
                    $366unpack_sequence.31 = exhaust_iter(value=$364call_function.28, count=2) :: Tuple(float64, int64)
                    del $364call_function.28
                    $366unpack_sequence.29 = static_getitem(value=$366unpack_sequence.31, index=0, index_var=None) :: float64
                    $366unpack_sequence.30 = static_getitem(value=$366unpack_sequence.31, index=1, index_var=None) :: int64
                    del $366unpack_sequence.31
                    det = $366unpack_sequence.29 :: float64
                    del $366unpack_sequence.29
                    num = $366unpack_sequence.30 :: int64
                    del $366unpack_sequence.30
72:         orient2d_count[num] += 1
            jump 372
          label 372
            del det_right
            del det_left
            del $300compare_op.78
            $378binary_subscr.4 = getitem(value=orient2d_count, index=num) :: int64
            $const380.5 = const(int, 1) :: Literal[int](1)
            $382inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=$378binary_subscr.4, rhs=$const380.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const380.5
            del $378binary_subscr.4
            orient2d_count[num] = $382inplace_add.6 :: (array(int64, 1d, C), int64, int64) -> none
            del num
            del $382inplace_add.6
73:         if det > 0:
            $const390.8 = const(int, 0) :: Literal[int](0)
            $392compare_op.9 = det > $const390.8 :: bool
            del det
            del $const390.8
            branch $392compare_op.9, 398, 406
74:             t_op_index_in_t = 0
              label 398
                del c_y
                del c_x
                del b_y
                del b_x
                del a_y
                del a_x
                del $392compare_op.9
                $const398.0 = const(int, 0) :: Literal[int](0)
                t_op_index_in_t = $const398.0 :: int64
                del $const398.0
                jump 720
75:         else:
76:             det_left = (point_x-c_x)*(a_y-c_y)
              label 406
                del $392compare_op.9
                $410binary_subtract.2 = point_x - c_x :: float64
                $416binary_subtract.5 = a_y - c_y :: float64
                $418binary_multiply.6 = $410binary_subtract.2 * $416binary_subtract.5 :: float64
                del $416binary_subtract.5
                del $410binary_subtract.2
                det_left = $418binary_multiply.6 :: float64
                del $418binary_multiply.6
77:             det_right = (point_y-c_y)*(a_x-c_x)
                $426binary_subtract.9 = point_y - c_y :: float64
                $432binary_subtract.12 = a_x - c_x :: float64
                $434binary_multiply.13 = $426binary_subtract.9 * $432binary_subtract.12 :: float64
                del $432binary_subtract.12
                del $426binary_subtract.9
                det_right = $434binary_multiply.13 :: float64
                del $434binary_multiply.13
78:             det = det_left - det_right
                $442binary_subtract.16 = det_left - det_right :: float64
                det = $442binary_subtract.16 :: float64
                del $442binary_subtract.16
79:             num = 0
                $const446.17 = const(int, 0) :: Literal[int](0)
                num = $const446.17 :: int64
                del $const446.17
80:             if np.abs(det) < static_filter_o2d:
                $450load_global.18 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                $452load_method.19 = getattr(value=$450load_global.18, attr=abs) :: Function(<ufunc 'absolute'>)
                del $450load_global.18
                $456call_method.21 = call $452load_method.19(det, func=$452load_method.19, args=[Var(det, final_2D_robust_multidimarr.py:64)], kws=(), vararg=None) :: (float64,) -> float64
                del $452load_method.19
                $460compare_op.23 = $456call_method.21 < static_filter_o2d :: bool
                del $456call_method.21
                branch $460compare_op.23, 466, 532
81:                 detsum = np.abs(det_left) + np.abs(det_right)
                  label 466
                    del $460compare_op.23
                    $466load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                    $468load_method.1 = getattr(value=$466load_global.0, attr=abs) :: Function(<ufunc 'absolute'>)
                    del $466load_global.0
                    $472call_method.3 = call $468load_method.1(det_left, func=$468load_method.1, args=[Var(det_left, final_2D_robust_multidimarr.py:62)], kws=(), vararg=None) :: (float64,) -> float64
                    del det_left
                    del $468load_method.1
                    $474load_global.4 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                    $476load_method.5 = getattr(value=$474load_global.4, attr=abs) :: Function(<ufunc 'absolute'>)
                    del $474load_global.4
                    $480call_method.7 = call $476load_method.5(det_right, func=$476load_method.5, args=[Var(det_right, final_2D_robust_multidimarr.py:63)], kws=(), vararg=None) :: (float64,) -> float64
                    del det_right
                    del $476load_method.5
                    $482binary_add.8 = $472call_method.3 + $480call_method.7 :: float64
                    del $480call_method.7
                    del $472call_method.3
                    detsum = $482binary_add.8 :: float64
                    del $482binary_add.8
82:                 det, num = orient2d(
                    $486load_global.9 = global(orient2d: CPUDispatcher(<function orient2d at 0x7f51d4472f80>)) :: type(CPUDispatcher(<function orient2d at 0x7f51d4472f80>))
83:                     point_x, point_y, a_x, a_y, c_x, c_y, splitter, B, C1, C2,
84:                     D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC,
85:                     resulterrbound, det, detsum)
                        $524call_function.28 = call $486load_global.9(point_x, point_y, a_x, a_y, c_x, c_y, splitter, B, C1, C2, D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC, resulterrbound, det, detsum, func=$486load_global.9, args=[Var(point_x, final_2D_robust_multidimarr.py:47), Var(point_y, final_2D_robust_multidimarr.py:48), Var(a_x, final_2D_robust_multidimarr.py:55), Var(a_y, final_2D_robust_multidimarr.py:56), Var(c_x, final_2D_robust_multidimarr.py:59), Var(c_y, final_2D_robust_multidimarr.py:60), Var(splitter, final_2D_robust_multidimarr.py:34), Var(B, final_2D_robust_multidimarr.py:34), Var(C1, final_2D_robust_multidimarr.py:34), Var(C2, final_2D_robust_multidimarr.py:34), Var(D, final_2D_robust_multidimarr.py:34), Var(u, final_2D_robust_multidimarr.py:34), Var(ccwerrboundA, final_2D_robust_multidimarr.py:34), Var(ccwerrboundB, final_2D_robust_multidimarr.py:34), Var(ccwerrboundC, final_2D_robust_multidimarr.py:34), Var(resulterrbound, final_2D_robust_multidimarr.py:34), Var(det, final_2D_robust_multidimarr.py:64), Var(detsum, final_2D_robust_multidimarr.py:67)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64) -> Tuple(float64, int64)
                        del detsum
                        del c_y
                        del c_x
                        del $486load_global.9
                        $526unpack_sequence.31 = exhaust_iter(value=$524call_function.28, count=2) :: Tuple(float64, int64)
                        del $524call_function.28
                        $526unpack_sequence.29 = static_getitem(value=$526unpack_sequence.31, index=0, index_var=None) :: float64
                        $526unpack_sequence.30 = static_getitem(value=$526unpack_sequence.31, index=1, index_var=None) :: int64
                        del $526unpack_sequence.31
                        det = $526unpack_sequence.29 :: float64
                        del $526unpack_sequence.29
                        num = $526unpack_sequence.30 :: int64
                        del $526unpack_sequence.30
86:             orient2d_count[num] += 1
                jump 532
              label 532
                del det_right
                del det_left
                del c_y
                del c_x
                del $460compare_op.23
                $538binary_subscr.4 = getitem(value=orient2d_count, index=num) :: int64
                $const540.5 = const(int, 1) :: Literal[int](1)
                $542inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=$538binary_subscr.4, rhs=$const540.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const540.5
                del $538binary_subscr.4
                orient2d_count[num] = $542inplace_add.6 :: (array(int64, 1d, C), int64, int64) -> none
                del num
                del $542inplace_add.6
87:             if det > 0:
                $const550.8 = const(int, 0) :: Literal[int](0)
                $552compare_op.9 = det > $const550.8 :: bool
                del det
                del $const550.8
                branch $552compare_op.9, 558, 564
88:                 t_op_index_in_t = 1
                  label 558
                    del b_y
                    del b_x
                    del a_y
                    del a_x
                    del $552compare_op.9
                    $const558.0 = const(int, 1) :: Literal[int](1)
                    t_op_index_in_t = $const558.0 :: int64
                    del $const558.0
                    jump 720
89:             else:
90:                 det_left = (point_x-a_x)*(b_y-a_y)
                  label 564
                    del $552compare_op.9
                    $568binary_subtract.2 = point_x - a_x :: float64
                    $574binary_subtract.5 = b_y - a_y :: float64
                    $576binary_multiply.6 = $568binary_subtract.2 * $574binary_subtract.5 :: float64
                    del $574binary_subtract.5
                    del $568binary_subtract.2
                    det_left = $576binary_multiply.6 :: float64
                    del $576binary_multiply.6
91:                 det_right = (point_y-a_y)*(b_x-a_x)
                    $584binary_subtract.9 = point_y - a_y :: float64
                    $590binary_subtract.12 = b_x - a_x :: float64
                    $592binary_multiply.13 = $584binary_subtract.9 * $590binary_subtract.12 :: float64
                    del $590binary_subtract.12
                    del $584binary_subtract.9
                    det_right = $592binary_multiply.13 :: float64
                    del $592binary_multiply.13
92:                 det = det_left - det_right
                    $600binary_subtract.16 = det_left - det_right :: float64
                    det = $600binary_subtract.16 :: float64
                    del $600binary_subtract.16
93:                 num = 0
                    $const604.17 = const(int, 0) :: Literal[int](0)
                    num = $const604.17 :: int64
                    del $const604.17
94:                 if np.abs(det) < static_filter_o2d:
                    $608load_global.18 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                    $610load_method.19 = getattr(value=$608load_global.18, attr=abs) :: Function(<ufunc 'absolute'>)
                    del $608load_global.18
                    $614call_method.21 = call $610load_method.19(det, func=$610load_method.19, args=[Var(det, final_2D_robust_multidimarr.py:64)], kws=(), vararg=None) :: (float64,) -> float64
                    del $610load_method.19
                    $618compare_op.23 = $614call_method.21 < static_filter_o2d :: bool
                    del $614call_method.21
                    branch $618compare_op.23, 624, 690
95:                     detsum = np.abs(det_left) + np.abs(det_right)
                      label 624
                        del $618compare_op.23
                        $624load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                        $626load_method.1 = getattr(value=$624load_global.0, attr=abs) :: Function(<ufunc 'absolute'>)
                        del $624load_global.0
                        $630call_method.3 = call $626load_method.1(det_left, func=$626load_method.1, args=[Var(det_left, final_2D_robust_multidimarr.py:62)], kws=(), vararg=None) :: (float64,) -> float64
                        del det_left
                        del $626load_method.1
                        $632load_global.4 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                        $634load_method.5 = getattr(value=$632load_global.4, attr=abs) :: Function(<ufunc 'absolute'>)
                        del $632load_global.4
                        $638call_method.7 = call $634load_method.5(det_right, func=$634load_method.5, args=[Var(det_right, final_2D_robust_multidimarr.py:63)], kws=(), vararg=None) :: (float64,) -> float64
                        del det_right
                        del $634load_method.5
                        $640binary_add.8 = $630call_method.3 + $638call_method.7 :: float64
                        del $638call_method.7
                        del $630call_method.3
                        detsum = $640binary_add.8 :: float64
                        del $640binary_add.8
96:                     det, num = orient2d(
                        $644load_global.9 = global(orient2d: CPUDispatcher(<function orient2d at 0x7f51d4472f80>)) :: type(CPUDispatcher(<function orient2d at 0x7f51d4472f80>))
97:                         point_x, point_y, b_x, b_y, a_x, a_y, splitter, B, C1,
98:                         C2, D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC,
99:                         resulterrbound, det, detsum)
                            $682call_function.28 = call $644load_global.9(point_x, point_y, b_x, b_y, a_x, a_y, splitter, B, C1, C2, D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC, resulterrbound, det, detsum, func=$644load_global.9, args=[Var(point_x, final_2D_robust_multidimarr.py:47), Var(point_y, final_2D_robust_multidimarr.py:48), Var(b_x, final_2D_robust_multidimarr.py:57), Var(b_y, final_2D_robust_multidimarr.py:58), Var(a_x, final_2D_robust_multidimarr.py:55), Var(a_y, final_2D_robust_multidimarr.py:56), Var(splitter, final_2D_robust_multidimarr.py:34), Var(B, final_2D_robust_multidimarr.py:34), Var(C1, final_2D_robust_multidimarr.py:34), Var(C2, final_2D_robust_multidimarr.py:34), Var(D, final_2D_robust_multidimarr.py:34), Var(u, final_2D_robust_multidimarr.py:34), Var(ccwerrboundA, final_2D_robust_multidimarr.py:34), Var(ccwerrboundB, final_2D_robust_multidimarr.py:34), Var(ccwerrboundC, final_2D_robust_multidimarr.py:34), Var(resulterrbound, final_2D_robust_multidimarr.py:34), Var(det, final_2D_robust_multidimarr.py:64), Var(detsum, final_2D_robust_multidimarr.py:67)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64) -> Tuple(float64, int64)
                            del detsum
                            del b_y
                            del b_x
                            del a_y
                            del a_x
                            del $644load_global.9
                            $684unpack_sequence.31 = exhaust_iter(value=$682call_function.28, count=2) :: Tuple(float64, int64)
                            del $682call_function.28
                            $684unpack_sequence.29 = static_getitem(value=$684unpack_sequence.31, index=0, index_var=None) :: float64
                            $684unpack_sequence.30 = static_getitem(value=$684unpack_sequence.31, index=1, index_var=None) :: int64
                            del $684unpack_sequence.31
                            det = $684unpack_sequence.29 :: float64
                            del $684unpack_sequence.29
                            num = $684unpack_sequence.30 :: int64
                            del $684unpack_sequence.30
100:                 orient2d_count[num] += 1
                    jump 690
                  label 690
                    del det_right
                    del det_left
                    del b_y
                    del b_x
                    del a_y
                    del a_x
                    del $618compare_op.23
                    $696binary_subscr.4 = getitem(value=orient2d_count, index=num) :: int64
                    $const698.5 = const(int, 1) :: Literal[int](1)
                    $700inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=$696binary_subscr.4, rhs=$const698.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const698.5
                    del $696binary_subscr.4
                    orient2d_count[num] = $700inplace_add.6 :: (array(int64, 1d, C), int64, int64) -> none
                    del num
                    del $700inplace_add.6
101:                 if det > 0:
                    $const708.8 = const(int, 0) :: Literal[int](0)
                    $710compare_op.9 = det > $const708.8 :: bool
                    del det
                    del $const708.8
                    branch $710compare_op.9, 716, 720
102:                     t_op_index_in_t = 2
                      label 716
                        del $710compare_op.9
                        $const716.0 = const(int, 2) :: Literal[int](2)
                        t_op_index_in_t = $const716.0 :: int64
                        del $const716.0
103:
104:         if t_op_index_in_t != 4:
            jump 720
          label 720
            del $710compare_op.9
            $const722.1 = const(int, 4) :: Literal[int](4)
            $724compare_op.2 = t_op_index_in_t != $const722.1 :: bool
            del $const722.1
            branch $724compare_op.2, 730, 748
105:             t_index = neighbour_ID[t_index, t_op_index_in_t]//3
              label 730
                del $724compare_op.2
                $736build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var(t_op_index_in_t, final_2D_robust_multidimarr.py:53)]) :: UniTuple(int64 x 2)
                del t_op_index_in_t
                $738binary_subscr.4 = getitem(value=neighbour_ID, index=$736build_tuple.3) :: int64
                del $736build_tuple.3
                $const740.5 = const(int, 3) :: Literal[int](3)
                $742binary_floor_divide.6 = $738binary_subscr.4 // $const740.5 :: int64
                del $const740.5
                del $738binary_subscr.4
                t_index = $742binary_floor_divide.6 :: int64
                del $742binary_floor_divide.6
                jump 750
106:         else:
107:             # point_id lies inside t_index
108:             break
              label 748
                del vertices_ID
                del u
                del t_op_index_in_t
                del static_filter_o2d
                del splitter
                del resulterrbound
                del points
                del point_y
                del point_x
                del orient2d_count
                del neighbour_ID
                del gv
                del ccwerrboundC
                del ccwerrboundB
                del ccwerrboundA
                del D
                del C2
                del C1
                del B
                del $724compare_op.2
                jump 816
109:
110:         if vertices_ID[t_index, 0] == gv:
          label 750
            $const754.2 = const(int, 0) :: Literal[int](0)
            $756build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const754.2, final_2D_robust_multidimarr.py:110)]) :: Tuple(int64, Literal[int](0))
            del $const754.2
            $758binary_subscr.4 = getitem(value=vertices_ID, index=$756build_tuple.3) :: int64
            del $756build_tuple.3
            $762compare_op.6 = $758binary_subscr.4 == gv :: bool
            del $758binary_subscr.4
            branch $762compare_op.6, 768, 772
111:             break
              label 768
                del vertices_ID
                del u
                del static_filter_o2d
                del splitter
                del resulterrbound
                del points
                del point_y
                del point_x
                del orient2d_count
                del neighbour_ID
                del gv
                del ccwerrboundC
                del ccwerrboundB
                del ccwerrboundA
                del D
                del C2
                del C1
                del B
                del $762compare_op.6
                jump 816
112:         elif vertices_ID[t_index, 1] == gv:
          label 772
            del $762compare_op.6
            $const776.2 = const(int, 1) :: Literal[int](1)
            $778build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const776.2, final_2D_robust_multidimarr.py:112)]) :: Tuple(int64, Literal[int](1))
            del $const776.2
            $780binary_subscr.4 = getitem(value=vertices_ID, index=$778build_tuple.3) :: int64
            del $778build_tuple.3
            $784compare_op.6 = $780binary_subscr.4 == gv :: bool
            del $780binary_subscr.4
            branch $784compare_op.6, 790, 794
113:             break
              label 790
                del vertices_ID
                del u
                del static_filter_o2d
                del splitter
                del resulterrbound
                del points
                del point_y
                del point_x
                del orient2d_count
                del neighbour_ID
                del gv
                del ccwerrboundC
                del ccwerrboundB
                del ccwerrboundA
                del D
                del C2
                del C1
                del B
                del $784compare_op.6
                jump 816
114:         elif vertices_ID[t_index, 2] == gv:
          label 794
            del $784compare_op.6
            $const798.2 = const(int, 2) :: Literal[int](2)
            $800build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:34), Var($const798.2, final_2D_robust_multidimarr.py:114)]) :: Tuple(int64, Literal[int](2))
            del $const798.2
            $802binary_subscr.4 = getitem(value=vertices_ID, index=$800build_tuple.3) :: int64
            del $800build_tuple.3
            $806compare_op.6 = $802binary_subscr.4 == gv :: bool
            del $802binary_subscr.4
            branch $806compare_op.6, 810, 122
115:             break
              label 810
                del vertices_ID
                del u
                del static_filter_o2d
                del splitter
                del resulterrbound
                del points
                del point_y
                del point_x
                del orient2d_count
                del neighbour_ID
                del gv
                del ccwerrboundC
                del ccwerrboundB
                del ccwerrboundA
                del D
                del C2
                del C1
                del B
                del $806compare_op.6
                jump 816
116:
117:     return t_index
      label 816
        $818return_value.1 = cast(value=t_index) :: int64
        del t_index
        return $818return_value.1



Function name: Two_Product_Presplit
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64, float64, float64) -> UniTuple(float64 x 2)
100: @njit
101: def Two_Product_Presplit(a, b, bhi, blo, splitter):
102:     x = a * b
      label 0
        a = arg(0, name=a) :: float64
        b = arg(1, name=b) :: float64
        bhi = arg(2, name=bhi) :: float64
        blo = arg(3, name=blo) :: float64
        splitter = arg(4, name=splitter) :: float64
        $6binary_multiply.2 = a * b :: float64
        del b
        x = $6binary_multiply.2 :: float64
        del $6binary_multiply.2
103:     ahi, alo = Split(a, splitter)
        $10load_global.3 = global(Split: CPUDispatcher(<function Split at 0x7f51d4cb2560>)) :: type(CPUDispatcher(<function Split at 0x7f51d4cb2560>))
        $16call_function.6 = call $10load_global.3(a, splitter, func=$10load_global.3, args=[Var(a, adaptive_predicates.py:102), Var(splitter, adaptive_predicates.py:102)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del splitter
        del a
        del $10load_global.3
        $18unpack_sequence.9 = exhaust_iter(value=$16call_function.6, count=2) :: UniTuple(float64 x 2)
        del $16call_function.6
        $18unpack_sequence.7 = static_getitem(value=$18unpack_sequence.9, index=0, index_var=None) :: float64
        $18unpack_sequence.8 = static_getitem(value=$18unpack_sequence.9, index=1, index_var=None) :: float64
        del $18unpack_sequence.9
        ahi = $18unpack_sequence.7 :: float64
        del $18unpack_sequence.7
        alo = $18unpack_sequence.8 :: float64
        del $18unpack_sequence.8
104:     err1 = x - (ahi * bhi)
        $30binary_multiply.13 = ahi * bhi :: float64
        $32binary_subtract.14 = x - $30binary_multiply.13 :: float64
        del $30binary_multiply.13
        err1 = $32binary_subtract.14 :: float64
        del $32binary_subtract.14
105:     err2 = err1 - (alo * bhi)
        $42binary_multiply.18 = alo * bhi :: float64
        del bhi
        $44binary_subtract.19 = err1 - $42binary_multiply.18 :: float64
        del err1
        del $42binary_multiply.18
        err2 = $44binary_subtract.19 :: float64
        del $44binary_subtract.19
106:     err3 = err2 - (ahi * blo)
        $54binary_multiply.23 = ahi * blo :: float64
        del ahi
        $56binary_subtract.24 = err2 - $54binary_multiply.23 :: float64
        del err2
        del $54binary_multiply.23
        err3 = $56binary_subtract.24 :: float64
        del $56binary_subtract.24
107:     y = (alo * blo) - err3
        $64binary_multiply.27 = alo * blo :: float64
        del blo
        del alo
        $68binary_subtract.29 = $64binary_multiply.27 - err3 :: float64
        del err3
        del $64binary_multiply.27
        y = $68binary_subtract.29 :: float64
        del $68binary_subtract.29
108:     return x, y
        $76build_tuple.32 = build_tuple(items=[Var(x, adaptive_predicates.py:102), Var(y, adaptive_predicates.py:107)]) :: UniTuple(float64 x 2)
        del y
        del x
        $78return_value.33 = cast(value=$76build_tuple.32) :: UniTuple(float64 x 2)
        del $76build_tuple.32
        return $78return_value.33



Function name: scale_expansion_zeroelim
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
909: @njit
910: def scale_expansion_zeroelim(elen, e, b, h, splitter):
911:     # e and h cannot be the same.
912:
913:     bhi, blo = Split(b, splitter)
      label 0
        elen = arg(0, name=elen) :: Literal[int](4)
        e = arg(1, name=e) :: array(float64, 1d, C)
        b = arg(2, name=b) :: float64
        h = arg(3, name=h) :: array(float64, 1d, C)
        splitter = arg(4, name=splitter) :: float64
        $2load_global.0 = global(Split: CPUDispatcher(<function Split at 0x7f51d4cb2560>)) :: type(CPUDispatcher(<function Split at 0x7f51d4cb2560>))
        $8call_function.3 = call $2load_global.0(b, splitter, func=$2load_global.0, args=[Var(b, adaptive_predicates.py:913), Var(splitter, adaptive_predicates.py:913)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del $2load_global.0
        $10unpack_sequence.6 = exhaust_iter(value=$8call_function.3, count=2) :: UniTuple(float64 x 2)
        del $8call_function.3
        $10unpack_sequence.4 = static_getitem(value=$10unpack_sequence.6, index=0, index_var=None) :: float64
        $10unpack_sequence.5 = static_getitem(value=$10unpack_sequence.6, index=1, index_var=None) :: float64
        del $10unpack_sequence.6
        bhi = $10unpack_sequence.4 :: float64
        del $10unpack_sequence.4
        blo = $10unpack_sequence.5 :: float64
        del $10unpack_sequence.5
914:     Q, hh = Two_Product_Presplit(e[0], b, bhi, blo, splitter)
        $16load_global.7 = global(Two_Product_Presplit: CPUDispatcher(<function Two_Product_Presplit at 0x7f51d4cb2dd0>)) :: type(CPUDispatcher(<function Two_Product_Presplit at 0x7f51d4cb2dd0>))
        $const20.9 = const(int, 0) :: Literal[int](0)
        $22binary_subscr.10 = static_getitem(value=e, index=0, index_var=$const20.9) :: float64
        del $const20.9
        $32call_function.15 = call $16load_global.7($22binary_subscr.10, b, bhi, blo, splitter, func=$16load_global.7, args=[Var($22binary_subscr.10, adaptive_predicates.py:914), Var(b, adaptive_predicates.py:913), Var(bhi, adaptive_predicates.py:913), Var(blo, adaptive_predicates.py:913), Var(splitter, adaptive_predicates.py:913)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64) -> UniTuple(float64 x 2)
        del $22binary_subscr.10
        del $16load_global.7
        $34unpack_sequence.18 = exhaust_iter(value=$32call_function.15, count=2) :: UniTuple(float64 x 2)
        del $32call_function.15
        $34unpack_sequence.16 = static_getitem(value=$34unpack_sequence.18, index=0, index_var=None) :: float64
        $34unpack_sequence.17 = static_getitem(value=$34unpack_sequence.18, index=1, index_var=None) :: float64
        del $34unpack_sequence.18
        Q = $34unpack_sequence.16 :: float64
        del $34unpack_sequence.16
        hh = $34unpack_sequence.17 :: float64
        del $34unpack_sequence.17
915:     hindex = 0
        $const40.19 = const(int, 0) :: Literal[int](0)
        hindex = $const40.19 :: int64
        del $const40.19
916:     if hh != 0:
        $const46.21 = const(int, 0) :: Literal[int](0)
        $48compare_op.22 = hh != $const46.21 :: bool
        del $const46.21
        branch $48compare_op.22, 52, 68
917:         h[hindex] = hh
          label 52
            del $48compare_op.22
            h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
            del hh
918:         hindex += 1
            $const62.4 = const(int, 1) :: Literal[int](1)
            $64inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const62.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const62.4
            hindex = $64inplace_add.5 :: int64
            del $64inplace_add.5
919:
920:     for eindex in range(1, elen):
        jump 68
      label 68
        del hh
        del $48compare_op.22
        $70load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $const72.1 = const(int, 1) :: Literal[int](1)
        $76call_function.3 = call $70load_global.0($const72.1, elen, func=$70load_global.0, args=[Var($const72.1, adaptive_predicates.py:920), Var(elen, adaptive_predicates.py:913)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
        del elen
        del $const72.1
        del $70load_global.0
        $78get_iter.4 = getiter(value=$76call_function.3) :: range_iter_int64
        del $76call_function.3
        $phi80.0 = $78get_iter.4 :: range_iter_int64
        del $78get_iter.4
        jump 80
      label 80
        $80for_iter.1 = iternext(value=$phi80.0) :: pair<int64, bool>
        $80for_iter.2 = pair_first(value=$80for_iter.1) :: int64
        $80for_iter.3 = pair_second(value=$80for_iter.1) :: bool
        del $80for_iter.1
        $phi82.1 = $80for_iter.2 :: int64
        del $80for_iter.2
        branch $80for_iter.3, 82, 190
      label 82
        del $80for_iter.3
        eindex = $phi82.1 :: int64
        del $phi82.1
      label 225
        del hh
        del $168compare_op.10
        jump 80
921:         enow = e[eindex]
            $88binary_subscr.4 = getitem(value=e, index=eindex) :: float64
            del eindex
            enow = $88binary_subscr.4 :: float64
            del $88binary_subscr.4
922:         product1, product0 = Two_Product_Presplit(enow, b, bhi, blo, splitter)
            $92load_global.5 = global(Two_Product_Presplit: CPUDispatcher(<function Two_Product_Presplit at 0x7f51d4cb2dd0>)) :: type(CPUDispatcher(<function Two_Product_Presplit at 0x7f51d4cb2dd0>))
            $104call_function.11 = call $92load_global.5(enow, b, bhi, blo, splitter, func=$92load_global.5, args=[Var(enow, adaptive_predicates.py:921), Var(b, adaptive_predicates.py:913), Var(bhi, adaptive_predicates.py:913), Var(blo, adaptive_predicates.py:913), Var(splitter, adaptive_predicates.py:913)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64) -> UniTuple(float64 x 2)
            del enow
            del $92load_global.5
            $106unpack_sequence.14 = exhaust_iter(value=$104call_function.11, count=2) :: UniTuple(float64 x 2)
            del $104call_function.11
            $106unpack_sequence.12 = static_getitem(value=$106unpack_sequence.14, index=0, index_var=None) :: float64
            $106unpack_sequence.13 = static_getitem(value=$106unpack_sequence.14, index=1, index_var=None) :: float64
            del $106unpack_sequence.14
            product1 = $106unpack_sequence.12 :: float64
            del $106unpack_sequence.12
            product0 = $106unpack_sequence.13 :: float64
            del $106unpack_sequence.13
923:         sum_, hh = Two_Sum(Q, product0)
            $112load_global.15 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
            $118call_function.18 = call $112load_global.15(Q, product0, func=$112load_global.15, args=[Var(Q, adaptive_predicates.py:914), Var(product0, adaptive_predicates.py:922)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del product0
            del Q
            del $112load_global.15
            $120unpack_sequence.21 = exhaust_iter(value=$118call_function.18, count=2) :: UniTuple(float64 x 2)
            del $118call_function.18
            $120unpack_sequence.19 = static_getitem(value=$120unpack_sequence.21, index=0, index_var=None) :: float64
            $120unpack_sequence.20 = static_getitem(value=$120unpack_sequence.21, index=1, index_var=None) :: float64
            del $120unpack_sequence.21
            sum_ = $120unpack_sequence.19 :: float64
            del $120unpack_sequence.19
            hh = $120unpack_sequence.20 :: float64
            del $120unpack_sequence.20
924:         if hh != 0:
            $const128.23 = const(int, 0) :: Literal[int](0)
            $130compare_op.24 = hh != $const128.23 :: bool
            del $const128.23
            branch $130compare_op.24, 134, 150
925:             h[hindex] = hh
              label 134
                del $130compare_op.24
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
926:             hindex += 1
                $const144.5 = const(int, 1) :: Literal[int](1)
                $146inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const144.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const144.5
                hindex = $146inplace_add.6 :: int64
                del $146inplace_add.6
927:         Q, hh = Fast_Two_Sum(product1, sum_)
            jump 150
          label 150
            del $130compare_op.24
            $150load_global.1 = global(Fast_Two_Sum: CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>)) :: type(CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>))
            $156call_function.4 = call $150load_global.1(product1, sum_, func=$150load_global.1, args=[Var(product1, adaptive_predicates.py:922), Var(sum_, adaptive_predicates.py:923)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del sum_
            del product1
            del $150load_global.1
            $158unpack_sequence.7 = exhaust_iter(value=$156call_function.4, count=2) :: UniTuple(float64 x 2)
            del $156call_function.4
            $158unpack_sequence.5 = static_getitem(value=$158unpack_sequence.7, index=0, index_var=None) :: float64
            $158unpack_sequence.6 = static_getitem(value=$158unpack_sequence.7, index=1, index_var=None) :: float64
            del $158unpack_sequence.7
            Q = $158unpack_sequence.5 :: float64
            del $158unpack_sequence.5
            hh = $158unpack_sequence.6 :: float64
            del $158unpack_sequence.6
928:         if hh != 0:
            $const166.9 = const(int, 0) :: Literal[int](0)
            $168compare_op.10 = hh != $const166.9 :: bool
            del $const166.9
            branch $168compare_op.10, 172, 225
929:             h[hindex] = hh
              label 172
                del $168compare_op.10
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
930:             hindex += 1
                $const182.5 = const(int, 1) :: Literal[int](1)
                $184inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const182.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const182.5
                hindex = $184inplace_add.6 :: int64
                del $184inplace_add.6
                jump 225
              label 190
931:
932:     if (Q != 0.0) or (hindex == 0):
        del splitter
        del e
        del blo
        del bhi
        del b
        del $phi82.1
        del $phi80.0
        del $80for_iter.3
        jump 192
      label 192
        $const194.1 = const(float, 0.0) :: float64
        $196compare_op.2 = Q != $const194.1 :: bool
        del $const194.1
        branch $196compare_op.2, 208, 200
      label 200
        del $196compare_op.2
        $const202.1 = const(int, 0) :: Literal[int](0)
        $204compare_op.2 = hindex == $const202.1 :: bool
        del $const202.1
        branch $204compare_op.2, 208, 224
933:         h[hindex] = Q
          label 208
            del $204compare_op.2
            del $196compare_op.2
            h[hindex] = Q :: (array(float64, 1d, C), int64, float64) -> none
            del h
            del Q
934:         hindex += 1
            $const218.4 = const(int, 1) :: Literal[int](1)
            $220inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const218.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const218.4
            hindex = $220inplace_add.5 :: int64
            del $220inplace_add.5
935:
936:     return hindex
        jump 224
      label 224
        del h
        del Q
        del $204compare_op.2
        $226return_value.1 = cast(value=hindex) :: int64
        del hindex
        return $226return_value.1



Function name: scale_expansion_zeroelim
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
909: @njit
910: def scale_expansion_zeroelim(elen, e, b, h, splitter):
911:     # e and h cannot be the same.
912:
913:     bhi, blo = Split(b, splitter)
      label 0
        elen = arg(0, name=elen) :: int64
        e = arg(1, name=e) :: array(float64, 1d, C)
        b = arg(2, name=b) :: float64
        h = arg(3, name=h) :: array(float64, 1d, C)
        splitter = arg(4, name=splitter) :: float64
        $2load_global.0 = global(Split: CPUDispatcher(<function Split at 0x7f51d4cb2560>)) :: type(CPUDispatcher(<function Split at 0x7f51d4cb2560>))
        $8call_function.3 = call $2load_global.0(b, splitter, func=$2load_global.0, args=[Var(b, adaptive_predicates.py:913), Var(splitter, adaptive_predicates.py:913)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del $2load_global.0
        $10unpack_sequence.6 = exhaust_iter(value=$8call_function.3, count=2) :: UniTuple(float64 x 2)
        del $8call_function.3
        $10unpack_sequence.4 = static_getitem(value=$10unpack_sequence.6, index=0, index_var=None) :: float64
        $10unpack_sequence.5 = static_getitem(value=$10unpack_sequence.6, index=1, index_var=None) :: float64
        del $10unpack_sequence.6
        bhi = $10unpack_sequence.4 :: float64
        del $10unpack_sequence.4
        blo = $10unpack_sequence.5 :: float64
        del $10unpack_sequence.5
914:     Q, hh = Two_Product_Presplit(e[0], b, bhi, blo, splitter)
        $16load_global.7 = global(Two_Product_Presplit: CPUDispatcher(<function Two_Product_Presplit at 0x7f51d4cb2dd0>)) :: type(CPUDispatcher(<function Two_Product_Presplit at 0x7f51d4cb2dd0>))
        $const20.9 = const(int, 0) :: Literal[int](0)
        $22binary_subscr.10 = static_getitem(value=e, index=0, index_var=$const20.9) :: float64
        del $const20.9
        $32call_function.15 = call $16load_global.7($22binary_subscr.10, b, bhi, blo, splitter, func=$16load_global.7, args=[Var($22binary_subscr.10, adaptive_predicates.py:914), Var(b, adaptive_predicates.py:913), Var(bhi, adaptive_predicates.py:913), Var(blo, adaptive_predicates.py:913), Var(splitter, adaptive_predicates.py:913)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64) -> UniTuple(float64 x 2)
        del $22binary_subscr.10
        del $16load_global.7
        $34unpack_sequence.18 = exhaust_iter(value=$32call_function.15, count=2) :: UniTuple(float64 x 2)
        del $32call_function.15
        $34unpack_sequence.16 = static_getitem(value=$34unpack_sequence.18, index=0, index_var=None) :: float64
        $34unpack_sequence.17 = static_getitem(value=$34unpack_sequence.18, index=1, index_var=None) :: float64
        del $34unpack_sequence.18
        Q = $34unpack_sequence.16 :: float64
        del $34unpack_sequence.16
        hh = $34unpack_sequence.17 :: float64
        del $34unpack_sequence.17
915:     hindex = 0
        $const40.19 = const(int, 0) :: Literal[int](0)
        hindex = $const40.19 :: int64
        del $const40.19
916:     if hh != 0:
        $const46.21 = const(int, 0) :: Literal[int](0)
        $48compare_op.22 = hh != $const46.21 :: bool
        del $const46.21
        branch $48compare_op.22, 52, 68
917:         h[hindex] = hh
          label 52
            del $48compare_op.22
            h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
            del hh
918:         hindex += 1
            $const62.4 = const(int, 1) :: Literal[int](1)
            $64inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const62.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const62.4
            hindex = $64inplace_add.5 :: int64
            del $64inplace_add.5
919:
920:     for eindex in range(1, elen):
        jump 68
      label 68
        del hh
        del $48compare_op.22
        $70load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $const72.1 = const(int, 1) :: Literal[int](1)
        $76call_function.3 = call $70load_global.0($const72.1, elen, func=$70load_global.0, args=[Var($const72.1, adaptive_predicates.py:920), Var(elen, adaptive_predicates.py:913)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
        del elen
        del $const72.1
        del $70load_global.0
        $78get_iter.4 = getiter(value=$76call_function.3) :: range_iter_int64
        del $76call_function.3
        $phi80.0 = $78get_iter.4 :: range_iter_int64
        del $78get_iter.4
        jump 80
      label 80
        $80for_iter.1 = iternext(value=$phi80.0) :: pair<int64, bool>
        $80for_iter.2 = pair_first(value=$80for_iter.1) :: int64
        $80for_iter.3 = pair_second(value=$80for_iter.1) :: bool
        del $80for_iter.1
        $phi82.1 = $80for_iter.2 :: int64
        del $80for_iter.2
        branch $80for_iter.3, 82, 190
      label 82
        del $80for_iter.3
        eindex = $phi82.1 :: int64
        del $phi82.1
      label 225
        del hh
        del $168compare_op.10
        jump 80
921:         enow = e[eindex]
            $88binary_subscr.4 = getitem(value=e, index=eindex) :: float64
            del eindex
            enow = $88binary_subscr.4 :: float64
            del $88binary_subscr.4
922:         product1, product0 = Two_Product_Presplit(enow, b, bhi, blo, splitter)
            $92load_global.5 = global(Two_Product_Presplit: CPUDispatcher(<function Two_Product_Presplit at 0x7f51d4cb2dd0>)) :: type(CPUDispatcher(<function Two_Product_Presplit at 0x7f51d4cb2dd0>))
            $104call_function.11 = call $92load_global.5(enow, b, bhi, blo, splitter, func=$92load_global.5, args=[Var(enow, adaptive_predicates.py:921), Var(b, adaptive_predicates.py:913), Var(bhi, adaptive_predicates.py:913), Var(blo, adaptive_predicates.py:913), Var(splitter, adaptive_predicates.py:913)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64) -> UniTuple(float64 x 2)
            del enow
            del $92load_global.5
            $106unpack_sequence.14 = exhaust_iter(value=$104call_function.11, count=2) :: UniTuple(float64 x 2)
            del $104call_function.11
            $106unpack_sequence.12 = static_getitem(value=$106unpack_sequence.14, index=0, index_var=None) :: float64
            $106unpack_sequence.13 = static_getitem(value=$106unpack_sequence.14, index=1, index_var=None) :: float64
            del $106unpack_sequence.14
            product1 = $106unpack_sequence.12 :: float64
            del $106unpack_sequence.12
            product0 = $106unpack_sequence.13 :: float64
            del $106unpack_sequence.13
923:         sum_, hh = Two_Sum(Q, product0)
            $112load_global.15 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
            $118call_function.18 = call $112load_global.15(Q, product0, func=$112load_global.15, args=[Var(Q, adaptive_predicates.py:914), Var(product0, adaptive_predicates.py:922)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del product0
            del Q
            del $112load_global.15
            $120unpack_sequence.21 = exhaust_iter(value=$118call_function.18, count=2) :: UniTuple(float64 x 2)
            del $118call_function.18
            $120unpack_sequence.19 = static_getitem(value=$120unpack_sequence.21, index=0, index_var=None) :: float64
            $120unpack_sequence.20 = static_getitem(value=$120unpack_sequence.21, index=1, index_var=None) :: float64
            del $120unpack_sequence.21
            sum_ = $120unpack_sequence.19 :: float64
            del $120unpack_sequence.19
            hh = $120unpack_sequence.20 :: float64
            del $120unpack_sequence.20
924:         if hh != 0:
            $const128.23 = const(int, 0) :: Literal[int](0)
            $130compare_op.24 = hh != $const128.23 :: bool
            del $const128.23
            branch $130compare_op.24, 134, 150
925:             h[hindex] = hh
              label 134
                del $130compare_op.24
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
926:             hindex += 1
                $const144.5 = const(int, 1) :: Literal[int](1)
                $146inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const144.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const144.5
                hindex = $146inplace_add.6 :: int64
                del $146inplace_add.6
927:         Q, hh = Fast_Two_Sum(product1, sum_)
            jump 150
          label 150
            del $130compare_op.24
            $150load_global.1 = global(Fast_Two_Sum: CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>)) :: type(CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>))
            $156call_function.4 = call $150load_global.1(product1, sum_, func=$150load_global.1, args=[Var(product1, adaptive_predicates.py:922), Var(sum_, adaptive_predicates.py:923)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del sum_
            del product1
            del $150load_global.1
            $158unpack_sequence.7 = exhaust_iter(value=$156call_function.4, count=2) :: UniTuple(float64 x 2)
            del $156call_function.4
            $158unpack_sequence.5 = static_getitem(value=$158unpack_sequence.7, index=0, index_var=None) :: float64
            $158unpack_sequence.6 = static_getitem(value=$158unpack_sequence.7, index=1, index_var=None) :: float64
            del $158unpack_sequence.7
            Q = $158unpack_sequence.5 :: float64
            del $158unpack_sequence.5
            hh = $158unpack_sequence.6 :: float64
            del $158unpack_sequence.6
928:         if hh != 0:
            $const166.9 = const(int, 0) :: Literal[int](0)
            $168compare_op.10 = hh != $const166.9 :: bool
            del $const166.9
            branch $168compare_op.10, 172, 225
929:             h[hindex] = hh
              label 172
                del $168compare_op.10
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
930:             hindex += 1
                $const182.5 = const(int, 1) :: Literal[int](1)
                $184inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const182.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const182.5
                hindex = $184inplace_add.6 :: int64
                del $184inplace_add.6
                jump 225
              label 190
931:
932:     if (Q != 0.0) or (hindex == 0):
        del splitter
        del e
        del blo
        del bhi
        del b
        del $phi82.1
        del $phi80.0
        del $80for_iter.3
        jump 192
      label 192
        $const194.1 = const(float, 0.0) :: float64
        $196compare_op.2 = Q != $const194.1 :: bool
        del $const194.1
        branch $196compare_op.2, 208, 200
      label 200
        del $196compare_op.2
        $const202.1 = const(int, 0) :: Literal[int](0)
        $204compare_op.2 = hindex == $const202.1 :: bool
        del $const202.1
        branch $204compare_op.2, 208, 224
933:         h[hindex] = Q
          label 208
            del $204compare_op.2
            del $196compare_op.2
            h[hindex] = Q :: (array(float64, 1d, C), int64, float64) -> none
            del h
            del Q
934:         hindex += 1
            $const218.4 = const(int, 1) :: Literal[int](1)
            $220inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const218.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const218.4
            hindex = $220inplace_add.5 :: int64
            del $220inplace_add.5
935:
936:     return hindex
        jump 224
      label 224
        del h
        del Q
        del $204compare_op.2
        $226return_value.1 = cast(value=hindex) :: int64
        del hindex
        return $226return_value.1



Function name: fast_expansion_sum_zeroelim
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
670: @njit
671: def fast_expansion_sum_zeroelim(elen, e, flen, f, h):
672:     # h cannot be e or f.
673:
674:     enow = e[0]
      label 0
        elen = arg(0, name=elen) :: int64
        e = arg(1, name=e) :: array(float64, 1d, C)
        flen = arg(2, name=flen) :: int64
        f = arg(3, name=f) :: array(float64, 1d, C)
        h = arg(4, name=h) :: array(float64, 1d, C)
        $const4.1 = const(int, 0) :: Literal[int](0)
        $6binary_subscr.2 = static_getitem(value=e, index=0, index_var=$const4.1) :: float64
        del $const4.1
        enow = $6binary_subscr.2 :: float64
        del $6binary_subscr.2
675:     fnow = f[0]
        $const12.4 = const(int, 0) :: Literal[int](0)
        $14binary_subscr.5 = static_getitem(value=f, index=0, index_var=$const12.4) :: float64
        del $const12.4
        fnow = $14binary_subscr.5 :: float64
        del $14binary_subscr.5
676:     eindex = 0
        $const18.6 = const(int, 0) :: Literal[int](0)
        eindex = $const18.6 :: int64
        del $const18.6
677:     findex = 0
        $const22.7 = const(int, 0) :: Literal[int](0)
        findex = $const22.7 :: int64
        del $const22.7
678:     if (fnow > enow) == (fnow > -enow):
        $30compare_op.10 = fnow > enow :: bool
        $36unary_negative.13 = unary(fn=<built-in function neg>, value=enow) :: float64
        $38compare_op.14 = fnow > $36unary_negative.13 :: bool
        del $36unary_negative.13
        $40compare_op.15 = $30compare_op.10 == $38compare_op.14 :: bool
        del $38compare_op.14
        del $30compare_op.10
        branch $40compare_op.15, 44, 66
679:         Q = enow
          label 44
            del $40compare_op.15
            Q = enow :: float64
680:         eindex += 1
            $const50.2 = const(int, 1) :: Literal[int](1)
            $52inplace_add.3 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const50.2, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const50.2
            eindex = $52inplace_add.3 :: int64
            del $52inplace_add.3
681:         enow = e[eindex]
            $60binary_subscr.6 = getitem(value=e, index=eindex) :: float64
            enow = $60binary_subscr.6 :: float64
            del $60binary_subscr.6
            jump 86
682:     else:
683:         Q = fnow
          label 66
            del $40compare_op.15
            Q = fnow :: float64
684:         findex += 1
            $const72.2 = const(int, 1) :: Literal[int](1)
            $74inplace_add.3 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const72.2, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const72.2
            findex = $74inplace_add.3 :: int64
            del $74inplace_add.3
685:         fnow = f[findex]
            $82binary_subscr.6 = getitem(value=f, index=findex) :: float64
            fnow = $82binary_subscr.6 :: float64
            del $82binary_subscr.6
686:
687:     hindex = 0
        jump 86
      label 86
        $const86.0 = const(int, 0) :: Literal[int](0)
        hindex = $const86.0 :: int64
        del $const86.0
688:     if (eindex < elen) and (findex < flen):
        $94compare_op.3 = eindex < elen :: bool
        branch $94compare_op.3, 100, 346
      label 100
        del $94compare_op.3
        $104compare_op.2 = findex < flen :: bool
        branch $104compare_op.2, 110, 346
689:         if (fnow > enow) == (fnow > -enow):
          label 110
            del $104compare_op.2
            $114compare_op.2 = fnow > enow :: bool
            $120unary_negative.5 = unary(fn=<built-in function neg>, value=enow) :: float64
            $122compare_op.6 = fnow > $120unary_negative.5 :: bool
            del $120unary_negative.5
            $124compare_op.7 = $114compare_op.2 == $122compare_op.6 :: bool
            del $122compare_op.6
            del $114compare_op.2
            branch $124compare_op.7, 128, 160
690:             Q, hh = Fast_Two_Sum(enow, Q)
              label 128
                del $124compare_op.7
                $128load_global.0 = global(Fast_Two_Sum: CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>)) :: type(CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>))
                $134call_function.3 = call $128load_global.0(enow, Q, func=$128load_global.0, args=[Var(enow, adaptive_predicates.py:674), Var(Q, adaptive_predicates.py:679)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                del $128load_global.0
                $136unpack_sequence.6 = exhaust_iter(value=$134call_function.3, count=2) :: UniTuple(float64 x 2)
                del $134call_function.3
                $136unpack_sequence.4 = static_getitem(value=$136unpack_sequence.6, index=0, index_var=None) :: float64
                $136unpack_sequence.5 = static_getitem(value=$136unpack_sequence.6, index=1, index_var=None) :: float64
                del $136unpack_sequence.6
                Q = $136unpack_sequence.4 :: float64
                del $136unpack_sequence.4
                hh = $136unpack_sequence.5 :: float64
                del $136unpack_sequence.5
691:             eindex += 1
                $const144.8 = const(int, 1) :: Literal[int](1)
                $146inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const144.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const144.8
                eindex = $146inplace_add.9 :: int64
                del $146inplace_add.9
692:             enow = e[eindex]
                $154binary_subscr.12 = getitem(value=e, index=eindex) :: float64
                enow = $154binary_subscr.12 :: float64
                del $154binary_subscr.12
                jump 190
693:         else:
694:             Q, hh = Fast_Two_Sum(fnow, Q)
              label 160
                del $124compare_op.7
                $160load_global.0 = global(Fast_Two_Sum: CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>)) :: type(CPUDispatcher(<function Fast_Two_Sum at 0x7f51d4cc53b0>))
                $166call_function.3 = call $160load_global.0(fnow, Q, func=$160load_global.0, args=[Var(fnow, adaptive_predicates.py:675), Var(Q, adaptive_predicates.py:679)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                del $160load_global.0
                $168unpack_sequence.6 = exhaust_iter(value=$166call_function.3, count=2) :: UniTuple(float64 x 2)
                del $166call_function.3
                $168unpack_sequence.4 = static_getitem(value=$168unpack_sequence.6, index=0, index_var=None) :: float64
                $168unpack_sequence.5 = static_getitem(value=$168unpack_sequence.6, index=1, index_var=None) :: float64
                del $168unpack_sequence.6
                Q = $168unpack_sequence.4 :: float64
                del $168unpack_sequence.4
                hh = $168unpack_sequence.5 :: float64
                del $168unpack_sequence.5
695:             findex += 1
                $const176.8 = const(int, 1) :: Literal[int](1)
                $178inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const176.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const176.8
                findex = $178inplace_add.9 :: int64
                del $178inplace_add.9
696:             fnow = f[findex]
                $186binary_subscr.12 = getitem(value=f, index=findex) :: float64
                fnow = $186binary_subscr.12 :: float64
                del $186binary_subscr.12
697:
698:         if hh != 0.0:
            jump 190
          label 190
            $const192.1 = const(float, 0.0) :: float64
            $194compare_op.2 = hh != $const192.1 :: bool
            del $const192.1
            branch $194compare_op.2, 198, 214
699:             h[hindex] = hh
              label 198
                del $194compare_op.2
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
700:             hindex += 1
                $const208.4 = const(int, 1) :: Literal[int](1)
                $210inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const208.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const208.4
                hindex = $210inplace_add.5 :: int64
                del $210inplace_add.5
701:
702:         while (eindex < elen) and (findex < flen):
            jump 214
          label 214
            del hh
            del $194compare_op.2
            jump 216
          label 216
            $220compare_op.2 = eindex < elen :: bool
            branch $220compare_op.2, 226, 344
          label 226
            del $220compare_op.2
            $230compare_op.2 = findex < flen :: bool
            branch $230compare_op.2, 236, 344
          label 533
            del hh
            del $322compare_op.2
            jump 216
703:             if (fnow > enow) == (fnow > -enow):
              label 236
                del $230compare_op.2
                $240compare_op.2 = fnow > enow :: bool
                $246unary_negative.5 = unary(fn=<built-in function neg>, value=enow) :: float64
                $248compare_op.6 = fnow > $246unary_negative.5 :: bool
                del $246unary_negative.5
                $250compare_op.7 = $240compare_op.2 == $248compare_op.6 :: bool
                del $248compare_op.6
                del $240compare_op.2
                branch $250compare_op.7, 256, 288
704:                 Q, hh = Two_Sum(Q, enow)
                  label 256
                    del $250compare_op.7
                    $256load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
                    $262call_function.3 = call $256load_global.0(Q, enow, func=$256load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(enow, adaptive_predicates.py:674)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                    del $256load_global.0
                    $264unpack_sequence.6 = exhaust_iter(value=$262call_function.3, count=2) :: UniTuple(float64 x 2)
                    del $262call_function.3
                    $264unpack_sequence.4 = static_getitem(value=$264unpack_sequence.6, index=0, index_var=None) :: float64
                    $264unpack_sequence.5 = static_getitem(value=$264unpack_sequence.6, index=1, index_var=None) :: float64
                    del $264unpack_sequence.6
                    Q = $264unpack_sequence.4 :: float64
                    del $264unpack_sequence.4
                    hh = $264unpack_sequence.5 :: float64
                    del $264unpack_sequence.5
705:                 eindex += 1
                    $const272.8 = const(int, 1) :: Literal[int](1)
                    $274inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const272.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const272.8
                    eindex = $274inplace_add.9 :: int64
                    del $274inplace_add.9
706:                 enow = e[eindex]
                    $282binary_subscr.12 = getitem(value=e, index=eindex) :: float64
                    enow = $282binary_subscr.12 :: float64
                    del $282binary_subscr.12
                    jump 318
707:             else:
708:                 Q, hh = Two_Sum(Q, fnow)
                  label 288
                    del $250compare_op.7
                    $288load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
                    $294call_function.3 = call $288load_global.0(Q, fnow, func=$288load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(fnow, adaptive_predicates.py:675)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
                    del $288load_global.0
                    $296unpack_sequence.6 = exhaust_iter(value=$294call_function.3, count=2) :: UniTuple(float64 x 2)
                    del $294call_function.3
                    $296unpack_sequence.4 = static_getitem(value=$296unpack_sequence.6, index=0, index_var=None) :: float64
                    $296unpack_sequence.5 = static_getitem(value=$296unpack_sequence.6, index=1, index_var=None) :: float64
                    del $296unpack_sequence.6
                    Q = $296unpack_sequence.4 :: float64
                    del $296unpack_sequence.4
                    hh = $296unpack_sequence.5 :: float64
                    del $296unpack_sequence.5
709:                 findex += 1
                    $const304.8 = const(int, 1) :: Literal[int](1)
                    $306inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const304.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const304.8
                    findex = $306inplace_add.9 :: int64
                    del $306inplace_add.9
710:                 fnow = f[findex]
                    $314binary_subscr.12 = getitem(value=f, index=findex) :: float64
                    fnow = $314binary_subscr.12 :: float64
                    del $314binary_subscr.12
711:
712:             if (hh != 0.0):
                jump 318
              label 318
                $const320.1 = const(float, 0.0) :: float64
                $322compare_op.2 = hh != $const320.1 :: bool
                del $const320.1
                branch $322compare_op.2, 326, 533
713:                 h[hindex] = hh
                  label 326
                    del $322compare_op.2
                    h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                    del hh
714:                 hindex += 1
                    $const336.4 = const(int, 1) :: Literal[int](1)
                    $338inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const336.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                    del $const336.4
                    hindex = $338inplace_add.5 :: int64
                    del $338inplace_add.5
                    jump 533
                  label 344
715:
716:     while eindex < elen:
        del $230compare_op.2
        del $220compare_op.2
        jump 346
      label 346
        del $94compare_op.3
        del $104compare_op.2
        jump 348
      label 348
        $352compare_op.2 = eindex < elen :: bool
        branch $352compare_op.2, 358, 418
      label 532
        del hh
        del $392compare_op.15
        jump 348
717:         Q, hh = Two_Sum(Q, enow)
          label 358
            del $352compare_op.2
            $358load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
            $364call_function.3 = call $358load_global.0(Q, enow, func=$358load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(enow, adaptive_predicates.py:674)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $358load_global.0
            $366unpack_sequence.6 = exhaust_iter(value=$364call_function.3, count=2) :: UniTuple(float64 x 2)
            del $364call_function.3
            $366unpack_sequence.4 = static_getitem(value=$366unpack_sequence.6, index=0, index_var=None) :: float64
            $366unpack_sequence.5 = static_getitem(value=$366unpack_sequence.6, index=1, index_var=None) :: float64
            del $366unpack_sequence.6
            Q = $366unpack_sequence.4 :: float64
            del $366unpack_sequence.4
            hh = $366unpack_sequence.5 :: float64
            del $366unpack_sequence.5
718:         eindex += 1
            $const374.8 = const(int, 1) :: Literal[int](1)
            $376inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=eindex, rhs=$const374.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const374.8
            eindex = $376inplace_add.9 :: int64
            del $376inplace_add.9
719:         enow = e[eindex]
            $384binary_subscr.12 = getitem(value=e, index=eindex) :: float64
            enow = $384binary_subscr.12 :: float64
            del $384binary_subscr.12
720:         if hh != 0.0:
            $const390.14 = const(float, 0.0) :: float64
            $392compare_op.15 = hh != $const390.14 :: bool
            del $const390.14
            branch $392compare_op.15, 398, 532
721:             h[hindex] = hh
              label 398
                del $392compare_op.15
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
722:             hindex += 1
                $const408.4 = const(int, 1) :: Literal[int](1)
                $410inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const408.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const408.4
                hindex = $410inplace_add.5 :: int64
                del $410inplace_add.5
                jump 532
              label 418
723:
724:     while findex < flen:
        del enow
        del elen
        del eindex
        del e
        del $352compare_op.2
        jump 420
      label 420
        jump 422
      label 422
        $426compare_op.2 = findex < flen :: bool
        branch $426compare_op.2, 432, 492
      label 531
        del hh
        del $466compare_op.15
        jump 422
725:         Q, hh = Two_Sum(Q, fnow)
          label 432
            del $426compare_op.2
            $432load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
            $438call_function.3 = call $432load_global.0(Q, fnow, func=$432load_global.0, args=[Var(Q, adaptive_predicates.py:679), Var(fnow, adaptive_predicates.py:675)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $432load_global.0
            $440unpack_sequence.6 = exhaust_iter(value=$438call_function.3, count=2) :: UniTuple(float64 x 2)
            del $438call_function.3
            $440unpack_sequence.4 = static_getitem(value=$440unpack_sequence.6, index=0, index_var=None) :: float64
            $440unpack_sequence.5 = static_getitem(value=$440unpack_sequence.6, index=1, index_var=None) :: float64
            del $440unpack_sequence.6
            Q = $440unpack_sequence.4 :: float64
            del $440unpack_sequence.4
            hh = $440unpack_sequence.5 :: float64
            del $440unpack_sequence.5
726:         findex += 1
            $const448.8 = const(int, 1) :: Literal[int](1)
            $450inplace_add.9 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=findex, rhs=$const448.8, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const448.8
            findex = $450inplace_add.9 :: int64
            del $450inplace_add.9
727:         fnow = f[findex]
            $458binary_subscr.12 = getitem(value=f, index=findex) :: float64
            fnow = $458binary_subscr.12 :: float64
            del $458binary_subscr.12
728:         if hh != 0.0:
            $const464.14 = const(float, 0.0) :: float64
            $466compare_op.15 = hh != $const464.14 :: bool
            del $const464.14
            branch $466compare_op.15, 472, 531
729:             h[hindex] = hh
              label 472
                del $466compare_op.15
                h[hindex] = hh :: (array(float64, 1d, C), int64, float64) -> none
                del hh
730:             hindex += 1
                $const482.4 = const(int, 1) :: Literal[int](1)
                $484inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const482.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const482.4
                hindex = $484inplace_add.5 :: int64
                del $484inplace_add.5
                jump 531
              label 492
731:
732:     if (Q != 0.0) or (hindex == 0):
        del fnow
        del flen
        del findex
        del f
        del $426compare_op.2
        jump 494
      label 494
        $const496.1 = const(float, 0.0) :: float64
        $498compare_op.2 = Q != $const496.1 :: bool
        del $const496.1
        branch $498compare_op.2, 514, 504
      label 504
        del $498compare_op.2
        $const506.1 = const(int, 0) :: Literal[int](0)
        $508compare_op.2 = hindex == $const506.1 :: bool
        del $const506.1
        branch $508compare_op.2, 514, 530
733:         h[hindex] = Q
          label 514
            del $508compare_op.2
            del $498compare_op.2
            h[hindex] = Q :: (array(float64, 1d, C), int64, float64) -> none
            del h
            del Q
734:         hindex += 1
            $const524.4 = const(int, 1) :: Literal[int](1)
            $526inplace_add.5 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=hindex, rhs=$const524.4, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const524.4
            hindex = $526inplace_add.5 :: int64
            del $526inplace_add.5
735:
736:     return hindex
        jump 530
      label 530
        del h
        del Q
        del $508compare_op.2
        $532return_value.1 = cast(value=hindex) :: int64
        del hindex
        return $532return_value.1



Function name: estimate
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (int64, array(float64, 1d, C)) -> float64
988: @njit
989: def estimate(elen, e):
990:
991:     Q = e[0]
      label 0
        elen = arg(0, name=elen) :: int64
        e = arg(1, name=e) :: array(float64, 1d, C)
        $const4.1 = const(int, 0) :: Literal[int](0)
        $6binary_subscr.2 = static_getitem(value=e, index=0, index_var=$const4.1) :: float64
        del $const4.1
        Q = $6binary_subscr.2 :: float64
        del $6binary_subscr.2
992:     for eindex in range(1, elen):
        jump 10
      label 10
        $12load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $const14.1 = const(int, 1) :: Literal[int](1)
        $18call_function.3 = call $12load_global.0($const14.1, elen, func=$12load_global.0, args=[Var($const14.1, adaptive_predicates.py:992), Var(elen, adaptive_predicates.py:991)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
        del elen
        del $const14.1
        del $12load_global.0
        $20get_iter.4 = getiter(value=$18call_function.3) :: range_iter_int64
        del $18call_function.3
        $phi22.0 = $20get_iter.4 :: range_iter_int64
        del $20get_iter.4
        jump 22
      label 22
        $22for_iter.1 = iternext(value=$phi22.0) :: pair<int64, bool>
        $22for_iter.2 = pair_first(value=$22for_iter.1) :: int64
        $22for_iter.3 = pair_second(value=$22for_iter.1) :: bool
        del $22for_iter.1
        $phi24.1 = $22for_iter.2 :: int64
        del $22for_iter.2
        branch $22for_iter.3, 24, 40
      label 24
        del $22for_iter.3
        eindex = $phi24.1 :: int64
        del $phi24.1
993:         Q += e[eindex]
            $32binary_subscr.5 = getitem(value=e, index=eindex) :: float64
            del eindex
            $34inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=Q, rhs=$32binary_subscr.5, static_lhs=Undefined, static_rhs=Undefined) :: float64
            del $32binary_subscr.5
            Q = $34inplace_add.6 :: float64
            del $34inplace_add.6
            jump 22
          label 40
994:     return Q
        del e
        del $phi24.1
        del $phi22.0
        del $22for_iter.3
        jump 42
      label 42
        $44return_value.1 = cast(value=Q) :: float64
        del Q
        return $44return_value.1



Function name: Square_Tail
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64) -> float64
126: @njit
127: def Square_Tail(a, x, splitter):
128:     ahi, alo = Split(a, splitter)
      label 0
        a = arg(0, name=a) :: float64
        x = arg(1, name=x) :: float64
        splitter = arg(2, name=splitter) :: float64
        $2load_global.0 = global(Split: CPUDispatcher(<function Split at 0x7f51d4cb2560>)) :: type(CPUDispatcher(<function Split at 0x7f51d4cb2560>))
        $8call_function.3 = call $2load_global.0(a, splitter, func=$2load_global.0, args=[Var(a, adaptive_predicates.py:128), Var(splitter, adaptive_predicates.py:128)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del splitter
        del a
        del $2load_global.0
        $10unpack_sequence.6 = exhaust_iter(value=$8call_function.3, count=2) :: UniTuple(float64 x 2)
        del $8call_function.3
        $10unpack_sequence.4 = static_getitem(value=$10unpack_sequence.6, index=0, index_var=None) :: float64
        $10unpack_sequence.5 = static_getitem(value=$10unpack_sequence.6, index=1, index_var=None) :: float64
        del $10unpack_sequence.6
        ahi = $10unpack_sequence.4 :: float64
        del $10unpack_sequence.4
        alo = $10unpack_sequence.5 :: float64
        del $10unpack_sequence.5
129:     err1 = x - (ahi * ahi)
        $22binary_multiply.10 = ahi * ahi :: float64
        $24binary_subtract.11 = x - $22binary_multiply.10 :: float64
        del x
        del $22binary_multiply.10
        err1 = $24binary_subtract.11 :: float64
        del $24binary_subtract.11
130:     err3 = err1 - ((ahi + ahi) * alo)
        $34binary_add.15 = ahi + ahi :: float64
        del ahi
        $38binary_multiply.17 = $34binary_add.15 * alo :: float64
        del $34binary_add.15
        $40binary_subtract.18 = err1 - $38binary_multiply.17 :: float64
        del err1
        del $38binary_multiply.17
        err3 = $40binary_subtract.18 :: float64
        del $40binary_subtract.18
131:     y = (alo * alo) - err3
        $48binary_multiply.21 = alo * alo :: float64
        del alo
        $52binary_subtract.23 = $48binary_multiply.21 - err3 :: float64
        del err3
        del $48binary_multiply.21
        y = $52binary_subtract.23 :: float64
        del $52binary_subtract.23
132:     return y
        $58return_value.25 = cast(value=y) :: float64
        del y
        return $58return_value.25



Function name: Square
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64) -> UniTuple(float64 x 2)
135: @njit
136: def Square(a, splitter):
137:     x = a * a
      label 0
        a = arg(0, name=a) :: float64
        splitter = arg(1, name=splitter) :: float64
        $6binary_multiply.2 = a * a :: float64
        x = $6binary_multiply.2 :: float64
        del $6binary_multiply.2
138:     y = Square_Tail(a, x, splitter)
        $10load_global.3 = global(Square_Tail: CPUDispatcher(<function Square_Tail at 0x7f51d4cac3b0>)) :: type(CPUDispatcher(<function Square_Tail at 0x7f51d4cac3b0>))
        $18call_function.7 = call $10load_global.3(a, x, splitter, func=$10load_global.3, args=[Var(a, adaptive_predicates.py:137), Var(x, adaptive_predicates.py:137), Var(splitter, adaptive_predicates.py:137)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del splitter
        del a
        del $10load_global.3
        y = $18call_function.7 :: float64
        del $18call_function.7
139:     return x, y
        $26build_tuple.10 = build_tuple(items=[Var(x, adaptive_predicates.py:137), Var(y, adaptive_predicates.py:138)]) :: UniTuple(float64 x 2)
        del y
        del x
        $28return_value.11 = cast(value=$26build_tuple.10) :: UniTuple(float64 x 2)
        del $26build_tuple.10
        return $28return_value.11



Function name: Two_One_Sum
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64) -> UniTuple(float64 x 3)
145: @njit
146: def Two_One_Sum(a1, a0, b):
147:     _i, x0 = Two_Sum(a0, b)
      label 0
        a1 = arg(0, name=a1) :: float64
        a0 = arg(1, name=a0) :: float64
        b = arg(2, name=b) :: float64
        $2load_global.0 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
        $8call_function.3 = call $2load_global.0(a0, b, func=$2load_global.0, args=[Var(a0, adaptive_predicates.py:147), Var(b, adaptive_predicates.py:147)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del b
        del a0
        del $2load_global.0
        $10unpack_sequence.6 = exhaust_iter(value=$8call_function.3, count=2) :: UniTuple(float64 x 2)
        del $8call_function.3
        $10unpack_sequence.4 = static_getitem(value=$10unpack_sequence.6, index=0, index_var=None) :: float64
        $10unpack_sequence.5 = static_getitem(value=$10unpack_sequence.6, index=1, index_var=None) :: float64
        del $10unpack_sequence.6
        _i = $10unpack_sequence.4 :: float64
        del $10unpack_sequence.4
        x0 = $10unpack_sequence.5 :: float64
        del $10unpack_sequence.5
148:     x2, x1 = Two_Sum(a1, _i)
        $16load_global.7 = global(Two_Sum: CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>)) :: type(CPUDispatcher(<function Two_Sum at 0x7f51d4cc5cb0>))
        $22call_function.10 = call $16load_global.7(a1, _i, func=$16load_global.7, args=[Var(a1, adaptive_predicates.py:147), Var(_i, adaptive_predicates.py:147)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
        del a1
        del _i
        del $16load_global.7
        $24unpack_sequence.13 = exhaust_iter(value=$22call_function.10, count=2) :: UniTuple(float64 x 2)
        del $22call_function.10
        $24unpack_sequence.11 = static_getitem(value=$24unpack_sequence.13, index=0, index_var=None) :: float64
        $24unpack_sequence.12 = static_getitem(value=$24unpack_sequence.13, index=1, index_var=None) :: float64
        del $24unpack_sequence.13
        x2 = $24unpack_sequence.11 :: float64
        del $24unpack_sequence.11
        x1 = $24unpack_sequence.12 :: float64
        del $24unpack_sequence.12
149:     return x2, x1, x0
        $36build_tuple.17 = build_tuple(items=[Var(x2, adaptive_predicates.py:148), Var(x1, adaptive_predicates.py:148), Var(x0, adaptive_predicates.py:147)]) :: UniTuple(float64 x 3)
        del x2
        del x1
        del x0
        $38return_value.18 = cast(value=$36build_tuple.17) :: UniTuple(float64 x 3)
        del $36build_tuple.17
        return $38return_value.18



Function name: Two_Two_Sum
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
159: @njit
160: def Two_Two_Sum(a1, a0, b1, b0):
161:     _j, _0, x0 = Two_One_Sum(a1, a0, b0)
      label 0
        a1 = arg(0, name=a1) :: float64
        a0 = arg(1, name=a0) :: float64
        b1 = arg(2, name=b1) :: float64
        b0 = arg(3, name=b0) :: float64
        $2load_global.0 = global(Two_One_Sum: CPUDispatcher(<function Two_One_Sum at 0x7f51d4cac950>)) :: type(CPUDispatcher(<function Two_One_Sum at 0x7f51d4cac950>))
        $10call_function.4 = call $2load_global.0(a1, a0, b0, func=$2load_global.0, args=[Var(a1, adaptive_predicates.py:161), Var(a0, adaptive_predicates.py:161), Var(b0, adaptive_predicates.py:161)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 3)
        del b0
        del a1
        del a0
        del $2load_global.0
        $12unpack_sequence.8 = exhaust_iter(value=$10call_function.4, count=3) :: UniTuple(float64 x 3)
        del $10call_function.4
        $12unpack_sequence.5 = static_getitem(value=$12unpack_sequence.8, index=0, index_var=None) :: float64
        $12unpack_sequence.6 = static_getitem(value=$12unpack_sequence.8, index=1, index_var=None) :: float64
        $12unpack_sequence.7 = static_getitem(value=$12unpack_sequence.8, index=2, index_var=None) :: float64
        del $12unpack_sequence.8
        _j = $12unpack_sequence.5 :: float64
        del $12unpack_sequence.5
        _0 = $12unpack_sequence.6 :: float64
        del $12unpack_sequence.6
        x0 = $12unpack_sequence.7 :: float64
        del $12unpack_sequence.7
162:     x3, x2, x1 = Two_One_Sum(_j, _0, b1)
        $20load_global.9 = global(Two_One_Sum: CPUDispatcher(<function Two_One_Sum at 0x7f51d4cac950>)) :: type(CPUDispatcher(<function Two_One_Sum at 0x7f51d4cac950>))
        $28call_function.13 = call $20load_global.9(_j, _0, b1, func=$20load_global.9, args=[Var(_j, adaptive_predicates.py:161), Var(_0, adaptive_predicates.py:161), Var(b1, adaptive_predicates.py:161)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 3)
        del b1
        del _j
        del _0
        del $20load_global.9
        $30unpack_sequence.17 = exhaust_iter(value=$28call_function.13, count=3) :: UniTuple(float64 x 3)
        del $28call_function.13
        $30unpack_sequence.14 = static_getitem(value=$30unpack_sequence.17, index=0, index_var=None) :: float64
        $30unpack_sequence.15 = static_getitem(value=$30unpack_sequence.17, index=1, index_var=None) :: float64
        $30unpack_sequence.16 = static_getitem(value=$30unpack_sequence.17, index=2, index_var=None) :: float64
        del $30unpack_sequence.17
        x3 = $30unpack_sequence.14 :: float64
        del $30unpack_sequence.14
        x2 = $30unpack_sequence.15 :: float64
        del $30unpack_sequence.15
        x1 = $30unpack_sequence.16 :: float64
        del $30unpack_sequence.16
163:     return x3, x2, x1, x0
        $46build_tuple.22 = build_tuple(items=[Var(x3, adaptive_predicates.py:162), Var(x2, adaptive_predicates.py:162), Var(x1, adaptive_predicates.py:162), Var(x0, adaptive_predicates.py:161)]) :: UniTuple(float64 x 4)
        del x3
        del x2
        del x1
        del x0
        $48return_value.23 = cast(value=$46build_tuple.22) :: UniTuple(float64 x 4)
        del $46build_tuple.22
        return $48return_value.23



Function name: swap
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (array(float64, 1d, C), array(float64, 1d, C)) -> none
1621: @njit
1622: def swap(arr1, arr2):
1623:     # arr1 and arr2 must be of the same length.
1624:     for i in range(len(arr1)):
      label 0
        arr1 = arg(0, name=arr1) :: array(float64, 1d, C)
        arr2 = arg(1, name=arr2) :: array(float64, 1d, C)
        jump 2
      label 2
        $4load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $6load_global.1 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $10call_function.3 = call $6load_global.1(arr1, func=$6load_global.1, args=[Var(arr1, adaptive_predicates.py:1624)], kws=(), vararg=None) :: (array(float64, 1d, C),) -> int64
        del $6load_global.1
        $12call_function.4 = call $4load_global.0($10call_function.3, func=$4load_global.0, args=[Var($10call_function.3, adaptive_predicates.py:1624)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del $4load_global.0
        del $10call_function.3
        $14get_iter.5 = getiter(value=$12call_function.4) :: range_iter_int64
        del $12call_function.4
        $phi16.0 = $14get_iter.5 :: range_iter_int64
        del $14get_iter.5
        jump 16
      label 16
        $16for_iter.1 = iternext(value=$phi16.0) :: pair<int64, bool>
        $16for_iter.2 = pair_first(value=$16for_iter.1) :: int64
        $16for_iter.3 = pair_second(value=$16for_iter.1) :: bool
        del $16for_iter.1
        $phi18.1 = $16for_iter.2 :: int64
        del $16for_iter.2
        branch $16for_iter.3, 18, 50
      label 18
        del $16for_iter.3
        i = $phi18.1 :: int64
        del $phi18.1
1625:         temp = arr1[i]
            $24binary_subscr.4 = getitem(value=arr1, index=i) :: float64
            temp = $24binary_subscr.4 :: float64
            del $24binary_subscr.4
1626:         arr1[i] = arr2[i]
            $32binary_subscr.7 = getitem(value=arr2, index=i) :: float64
            arr1[i] = $32binary_subscr.7 :: (array(float64, 1d, C), int64, float64) -> none
            del $32binary_subscr.7
1627:         arr2[i] = temp
            arr2[i] = temp :: (array(float64, 1d, C), int64, float64) -> none
            del temp
            del i
            jump 16
          label 50
1628:     return
        del arr2
        del arr1
        del $phi18.1
        del $phi16.0
        del $16for_iter.3
        jump 52
      label 52
        $const52.0 = const(NoneType, None) :: none
        $54return_value.1 = cast(value=$const52.0) :: none
        del $const52.0
        return $54return_value.1



Function name: incircleadapt
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64) -> Tuple(float64, int64)
1630: @njit
1631: def incircleadapt(pa_x, pa_y, pb_x, pb_y, pc_x, pc_y, pd_x, pd_y, permanent,
1632:                   bc, ca, ab, axbc, axxbc, aybc, ayybc, adet, bxca, bxxca,
1633:                   byca, byyca, bdet, cxab, cxxab, cyab, cyyab, cdet, abdet,
1634:                   fin1, fin2, aa, bb, cc, u, v, temp8, temp16a, temp16b,
1635:                   temp16c, temp32a, temp32b, temp48, temp64, axtbb, axtcc,
1636:                   aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb,
1637:                   cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab,
1638:                   axtbct, aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt,
1639:                   aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct, cat,
1640:                   abtt, bctt, catt, splitter, iccerrboundB, iccerrboundC,
1641:                   resulterrbound):
1642:     '''
1643:     len(bc) = 4
1644:     len(ca) = 4
1645:     len(ab) = 4
1646:     len(axbc) = 8
1647:     len(axxbc) = 16
1648:     len(aybc) = 8
1649:     len(ayybc) = 16
1650:     len(adet) = 32
1651:     len(bxca) = 8
1652:     len(bxxca) = 16
1653:     len(byca) = 8
1654:     len(byyca) = 16
1655:     len(bdet) = 32
1656:     len(cxab) = 8
1657:     len(cxxab) = 16
1658:     len(cyab) = 8
1659:     len(cyyab) = 16
1660:     len(cdet) = 32
1661:     len(abdet) = 64
1662:     len(fin1) = 1152
1663:     len(fin2) = 1152
1664:     len(aa) = 4
1665:     len(bb) = 4
1666:     len(cc) = 4
1667:     len(u) = 4
1668:     len(v) = 4
1669:     len(temp8) = 8
1670:     len(temp16a) = 16
1671:     len(temp16b) = 16
1672:     len(temp16c) = 16
1673:     len(temp32a) = 32
1674:     len(temp32b) = 32
1675:     len(temp48) = 48
1676:     len(temp64) = 64
1677:     len(axtbb) = 8
1678:     len(axtcc) = 8
1679:     len(aytbb) = 8
1680:     len(aytcc) = 8
1681:     len(bxtaa) = 8
1682:     len(bxtcc) = 8
1683:     len(bytaa) = 8
1684:     len(bytcc) = 8
1685:     len(cxtaa) = 8
1686:     len(cxtbb) = 8
1687:     len(cytaa) = 8
1688:     len(cytbb) = 8
1689:     len(axtbc) = 8
1690:     len(aytbc) = 8
1691:     len(bxtca) = 8
1692:     len(bytca) = 8
1693:     len(cxtab) = 8
1694:     len(cytab) = 8
1695:     len(axtbct) = 16
1696:     len(aytbct) = 16
1697:     len(bxtcat) = 16
1698:     len(bytcat) = 16
1699:     len(cxtabt) = 16
1700:     len(cytabt) = 16
1701:     len(axtbctt) = 8
1702:     len(aytbctt) = 8
1703:     len(bxtcatt) = 8
1704:     len(bytcatt) = 8
1705:     len(cxtabtt) = 8
1706:     len(cytabtt) = 8
1707:     len(abt) = 8
1708:     len(bct) = 8
1709:     len(cat) = 8
1710:     len(abtt) = 4
1711:     len(bctt) = 4
1712:     len(catt) = 4
1713:     '''
1714:
1715:     adx = pa_x - pd_x
      label 0
        pa_x = arg(0, name=pa_x) :: float64
        pa_y = arg(1, name=pa_y) :: float64
        pb_x = arg(2, name=pb_x) :: float64
        pb_y = arg(3, name=pb_y) :: float64
        pc_x = arg(4, name=pc_x) :: float64
        pc_y = arg(5, name=pc_y) :: float64
        pd_x = arg(6, name=pd_x) :: float64
        pd_y = arg(7, name=pd_y) :: float64
        permanent = arg(8, name=permanent) :: float64
        bc = arg(9, name=bc) :: array(float64, 1d, C)
        ca = arg(10, name=ca) :: array(float64, 1d, C)
        ab = arg(11, name=ab) :: array(float64, 1d, C)
        axbc = arg(12, name=axbc) :: array(float64, 1d, C)
        axxbc = arg(13, name=axxbc) :: array(float64, 1d, C)
        aybc = arg(14, name=aybc) :: array(float64, 1d, C)
        ayybc = arg(15, name=ayybc) :: array(float64, 1d, C)
        adet = arg(16, name=adet) :: array(float64, 1d, C)
        bxca = arg(17, name=bxca) :: array(float64, 1d, C)
        bxxca = arg(18, name=bxxca) :: array(float64, 1d, C)
        byca = arg(19, name=byca) :: array(float64, 1d, C)
        byyca = arg(20, name=byyca) :: array(float64, 1d, C)
        bdet = arg(21, name=bdet) :: array(float64, 1d, C)
        cxab = arg(22, name=cxab) :: array(float64, 1d, C)
        cxxab = arg(23, name=cxxab) :: array(float64, 1d, C)
        cyab = arg(24, name=cyab) :: array(float64, 1d, C)
        cyyab = arg(25, name=cyyab) :: array(float64, 1d, C)
        cdet = arg(26, name=cdet) :: array(float64, 1d, C)
        abdet = arg(27, name=abdet) :: array(float64, 1d, C)
        fin1 = arg(28, name=fin1) :: array(float64, 1d, C)
        fin2 = arg(29, name=fin2) :: array(float64, 1d, C)
        aa = arg(30, name=aa) :: array(float64, 1d, C)
        bb = arg(31, name=bb) :: array(float64, 1d, C)
        cc = arg(32, name=cc) :: array(float64, 1d, C)
        u = arg(33, name=u) :: array(float64, 1d, C)
        v = arg(34, name=v) :: array(float64, 1d, C)
        temp8 = arg(35, name=temp8) :: array(float64, 1d, C)
        temp16a = arg(36, name=temp16a) :: array(float64, 1d, C)
        temp16b = arg(37, name=temp16b) :: array(float64, 1d, C)
        temp16c = arg(38, name=temp16c) :: array(float64, 1d, C)
        temp32a = arg(39, name=temp32a) :: array(float64, 1d, C)
        temp32b = arg(40, name=temp32b) :: array(float64, 1d, C)
        temp48 = arg(41, name=temp48) :: array(float64, 1d, C)
        temp64 = arg(42, name=temp64) :: array(float64, 1d, C)
        axtbb = arg(43, name=axtbb) :: array(float64, 1d, C)
        axtcc = arg(44, name=axtcc) :: array(float64, 1d, C)
        aytbb = arg(45, name=aytbb) :: array(float64, 1d, C)
        aytcc = arg(46, name=aytcc) :: array(float64, 1d, C)
        bxtaa = arg(47, name=bxtaa) :: array(float64, 1d, C)
        bxtcc = arg(48, name=bxtcc) :: array(float64, 1d, C)
        bytaa = arg(49, name=bytaa) :: array(float64, 1d, C)
        bytcc = arg(50, name=bytcc) :: array(float64, 1d, C)
        cxtaa = arg(51, name=cxtaa) :: array(float64, 1d, C)
        cxtbb = arg(52, name=cxtbb) :: array(float64, 1d, C)
        cytaa = arg(53, name=cytaa) :: array(float64, 1d, C)
        cytbb = arg(54, name=cytbb) :: array(float64, 1d, C)
        axtbc = arg(55, name=axtbc) :: array(float64, 1d, C)
        aytbc = arg(56, name=aytbc) :: array(float64, 1d, C)
        bxtca = arg(57, name=bxtca) :: array(float64, 1d, C)
        bytca = arg(58, name=bytca) :: array(float64, 1d, C)
        cxtab = arg(59, name=cxtab) :: array(float64, 1d, C)
        cytab = arg(60, name=cytab) :: array(float64, 1d, C)
        axtbct = arg(61, name=axtbct) :: array(float64, 1d, C)
        aytbct = arg(62, name=aytbct) :: array(float64, 1d, C)
        bxtcat = arg(63, name=bxtcat) :: array(float64, 1d, C)
        bytcat = arg(64, name=bytcat) :: array(float64, 1d, C)
        cxtabt = arg(65, name=cxtabt) :: array(float64, 1d, C)
        cytabt = arg(66, name=cytabt) :: array(float64, 1d, C)
        axtbctt = arg(67, name=axtbctt) :: array(float64, 1d, C)
        aytbctt = arg(68, name=aytbctt) :: array(float64, 1d, C)
        bxtcatt = arg(69, name=bxtcatt) :: array(float64, 1d, C)
        bytcatt = arg(70, name=bytcatt) :: array(float64, 1d, C)
        cxtabtt = arg(71, name=cxtabtt) :: array(float64, 1d, C)
        cytabtt = arg(72, name=cytabtt) :: array(float64, 1d, C)
        abt = arg(73, name=abt) :: array(float64, 1d, C)
        bct = arg(74, name=bct) :: array(float64, 1d, C)
        cat = arg(75, name=cat) :: array(float64, 1d, C)
        abtt = arg(76, name=abtt) :: array(float64, 1d, C)
        bctt = arg(77, name=bctt) :: array(float64, 1d, C)
        catt = arg(78, name=catt) :: array(float64, 1d, C)
        splitter = arg(79, name=splitter) :: float64
        iccerrboundB = arg(80, name=iccerrboundB) :: float64
        iccerrboundC = arg(81, name=iccerrboundC) :: float64
        resulterrbound = arg(82, name=resulterrbound) :: float64
        $6binary_subtract.2 = pa_x - pd_x :: float64
        adx = $6binary_subtract.2 :: float64
        del $6binary_subtract.2
1716:     bdx = pb_x - pd_x
        $14binary_subtract.5 = pb_x - pd_x :: float64
        bdx = $14binary_subtract.5 :: float64
        del $14binary_subtract.5
1717:     cdx = pc_x - pd_x
        $22binary_subtract.8 = pc_x - pd_x :: float64
        cdx = $22binary_subtract.8 :: float64
        del $22binary_subtract.8
1718:     ady = pa_y - pd_y
        $30binary_subtract.11 = pa_y - pd_y :: float64
        ady = $30binary_subtract.11 :: float64
        del $30binary_subtract.11
1719:     bdy = pb_y - pd_y
        $38binary_subtract.14 = pb_y - pd_y :: float64
        bdy = $38binary_subtract.14 :: float64
        del $38binary_subtract.14
1720:     cdy = pc_y - pd_y
        $46binary_subtract.17 = pc_y - pd_y :: float64
        cdy = $46binary_subtract.17 :: float64
        del $46binary_subtract.17
1721:
1722:     bdxcdy1, bdxcdy0 = Two_Product(bdx, cdy, splitter)
        $50load_global.18 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $58call_function.22 = call $50load_global.18(bdx, cdy, splitter, func=$50load_global.18, args=[Var(bdx, adaptive_predicates.py:1716), Var(cdy, adaptive_predicates.py:1720), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del $50load_global.18
        $60unpack_sequence.25 = exhaust_iter(value=$58call_function.22, count=2) :: UniTuple(float64 x 2)
        del $58call_function.22
        $60unpack_sequence.23 = static_getitem(value=$60unpack_sequence.25, index=0, index_var=None) :: float64
        $60unpack_sequence.24 = static_getitem(value=$60unpack_sequence.25, index=1, index_var=None) :: float64
        del $60unpack_sequence.25
        bdxcdy1 = $60unpack_sequence.23 :: float64
        del $60unpack_sequence.23
        bdxcdy0 = $60unpack_sequence.24 :: float64
        del $60unpack_sequence.24
1723:     cdxbdy1, cdxbdy0 = Two_Product(cdx, bdy, splitter)
        $66load_global.26 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $74call_function.30 = call $66load_global.26(cdx, bdy, splitter, func=$66load_global.26, args=[Var(cdx, adaptive_predicates.py:1717), Var(bdy, adaptive_predicates.py:1719), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del $66load_global.26
        $76unpack_sequence.33 = exhaust_iter(value=$74call_function.30, count=2) :: UniTuple(float64 x 2)
        del $74call_function.30
        $76unpack_sequence.31 = static_getitem(value=$76unpack_sequence.33, index=0, index_var=None) :: float64
        $76unpack_sequence.32 = static_getitem(value=$76unpack_sequence.33, index=1, index_var=None) :: float64
        del $76unpack_sequence.33
        cdxbdy1 = $76unpack_sequence.31 :: float64
        del $76unpack_sequence.31
        cdxbdy0 = $76unpack_sequence.32 :: float64
        del $76unpack_sequence.32
1724:     bc[3], bc[2], bc[1], bc[0] = Two_Two_Diff(bdxcdy1, bdxcdy0,
        $82load_global.34 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
1725:                                               cdxbdy1, cdxbdy0)
                                                  $92call_function.39 = call $82load_global.34(bdxcdy1, bdxcdy0, cdxbdy1, cdxbdy0, func=$82load_global.34, args=[Var(bdxcdy1, adaptive_predicates.py:1722), Var(bdxcdy0, adaptive_predicates.py:1722), Var(cdxbdy1, adaptive_predicates.py:1723), Var(cdxbdy0, adaptive_predicates.py:1723)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                  del cdxbdy1
                                                  del cdxbdy0
                                                  del bdxcdy1
                                                  del bdxcdy0
                                                  del $82load_global.34
                                                  $94unpack_sequence.44 = exhaust_iter(value=$92call_function.39, count=4) :: UniTuple(float64 x 4)
                                                  del $92call_function.39
                                                  $94unpack_sequence.40 = static_getitem(value=$94unpack_sequence.44, index=0, index_var=None) :: float64
                                                  $94unpack_sequence.41 = static_getitem(value=$94unpack_sequence.44, index=1, index_var=None) :: float64
                                                  $94unpack_sequence.42 = static_getitem(value=$94unpack_sequence.44, index=2, index_var=None) :: float64
                                                  $94unpack_sequence.43 = static_getitem(value=$94unpack_sequence.44, index=3, index_var=None) :: float64
                                                  del $94unpack_sequence.44
                                                  $const98.46 = const(int, 3) :: Literal[int](3)
                                                  bc[3] = $94unpack_sequence.40
                                                  del $const98.46
                                                  del $94unpack_sequence.40
                                                  $const104.48 = const(int, 2) :: Literal[int](2)
                                                  bc[2] = $94unpack_sequence.41
                                                  del $const104.48
                                                  del $94unpack_sequence.41
                                                  $const110.50 = const(int, 1) :: Literal[int](1)
                                                  bc[1] = $94unpack_sequence.42
                                                  del $const110.50
                                                  del $94unpack_sequence.42
                                                  $const116.52 = const(int, 0) :: Literal[int](0)
                                                  bc[0] = $94unpack_sequence.43
                                                  del $const116.52
                                                  del $94unpack_sequence.43
1726:     axbclen = scale_expansion_zeroelim(4, bc, adx, axbc, splitter)
        $120load_global.53 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $const122.54 = const(int, 4) :: Literal[int](4)
        $132call_function.59 = call $120load_global.53($const122.54, bc, adx, axbc, splitter, func=$120load_global.53, args=[Var($const122.54, adaptive_predicates.py:1726), Var(bc, adaptive_predicates.py:1715), Var(adx, adaptive_predicates.py:1715), Var(axbc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del $const122.54
        del $120load_global.53
        axbclen = $132call_function.59 :: int64
        del $132call_function.59
1727:     axxbclen = scale_expansion_zeroelim(axbclen, axbc, adx, axxbc, splitter)
        $136load_global.60 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $148call_function.66 = call $136load_global.60(axbclen, axbc, adx, axxbc, splitter, func=$136load_global.60, args=[Var(axbclen, adaptive_predicates.py:1726), Var(axbc, adaptive_predicates.py:1715), Var(adx, adaptive_predicates.py:1715), Var(axxbc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del axbclen
        del axbc
        del $136load_global.60
        axxbclen = $148call_function.66 :: int64
        del $148call_function.66
1728:     aybclen = scale_expansion_zeroelim(4, bc, ady, aybc, splitter)
        $152load_global.67 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $const154.68 = const(int, 4) :: Literal[int](4)
        $164call_function.73 = call $152load_global.67($const154.68, bc, ady, aybc, splitter, func=$152load_global.67, args=[Var($const154.68, adaptive_predicates.py:1728), Var(bc, adaptive_predicates.py:1715), Var(ady, adaptive_predicates.py:1718), Var(aybc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del $const154.68
        del $152load_global.67
        aybclen = $164call_function.73 :: int64
        del $164call_function.73
1729:     ayybclen = scale_expansion_zeroelim(aybclen, aybc, ady, ayybc, splitter)
        $168load_global.74 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $180call_function.80 = call $168load_global.74(aybclen, aybc, ady, ayybc, splitter, func=$168load_global.74, args=[Var(aybclen, adaptive_predicates.py:1728), Var(aybc, adaptive_predicates.py:1715), Var(ady, adaptive_predicates.py:1718), Var(ayybc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del aybclen
        del aybc
        del $168load_global.74
        ayybclen = $180call_function.80 :: int64
        del $180call_function.80
1730:     alen = fast_expansion_sum_zeroelim(axxbclen, axxbc, ayybclen, ayybc, adet)
        $184load_global.81 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
        $196call_function.87 = call $184load_global.81(axxbclen, axxbc, ayybclen, ayybc, adet, func=$184load_global.81, args=[Var(axxbclen, adaptive_predicates.py:1727), Var(axxbc, adaptive_predicates.py:1715), Var(ayybclen, adaptive_predicates.py:1729), Var(ayybc, adaptive_predicates.py:1715), Var(adet, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
        del ayybclen
        del ayybc
        del axxbclen
        del axxbc
        del $184load_global.81
        alen = $196call_function.87 :: int64
        del $196call_function.87
1731:
1732:     cdxady1, cdxady0 = Two_Product(cdx, ady, splitter)
        $200load_global.88 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $208call_function.92 = call $200load_global.88(cdx, ady, splitter, func=$200load_global.88, args=[Var(cdx, adaptive_predicates.py:1717), Var(ady, adaptive_predicates.py:1718), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del $200load_global.88
        $210unpack_sequence.95 = exhaust_iter(value=$208call_function.92, count=2) :: UniTuple(float64 x 2)
        del $208call_function.92
        $210unpack_sequence.93 = static_getitem(value=$210unpack_sequence.95, index=0, index_var=None) :: float64
        $210unpack_sequence.94 = static_getitem(value=$210unpack_sequence.95, index=1, index_var=None) :: float64
        del $210unpack_sequence.95
        cdxady1 = $210unpack_sequence.93 :: float64
        del $210unpack_sequence.93
        cdxady0 = $210unpack_sequence.94 :: float64
        del $210unpack_sequence.94
1733:     adxcdy1, adxcdy0 = Two_Product(adx, cdy, splitter)
        $216load_global.96 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $224call_function.100 = call $216load_global.96(adx, cdy, splitter, func=$216load_global.96, args=[Var(adx, adaptive_predicates.py:1715), Var(cdy, adaptive_predicates.py:1720), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del $216load_global.96
        $226unpack_sequence.103 = exhaust_iter(value=$224call_function.100, count=2) :: UniTuple(float64 x 2)
        del $224call_function.100
        $226unpack_sequence.101 = static_getitem(value=$226unpack_sequence.103, index=0, index_var=None) :: float64
        $226unpack_sequence.102 = static_getitem(value=$226unpack_sequence.103, index=1, index_var=None) :: float64
        del $226unpack_sequence.103
        adxcdy1 = $226unpack_sequence.101 :: float64
        del $226unpack_sequence.101
        adxcdy0 = $226unpack_sequence.102 :: float64
        del $226unpack_sequence.102
1734:     ca[3], ca[2], ca[1], ca[0] = Two_Two_Diff(cdxady1, cdxady0,
        $232load_global.104 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
1735:                                               adxcdy1, adxcdy0)
                                                  $242call_function.109 = call $232load_global.104(cdxady1, cdxady0, adxcdy1, adxcdy0, func=$232load_global.104, args=[Var(cdxady1, adaptive_predicates.py:1732), Var(cdxady0, adaptive_predicates.py:1732), Var(adxcdy1, adaptive_predicates.py:1733), Var(adxcdy0, adaptive_predicates.py:1733)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                  del cdxady1
                                                  del cdxady0
                                                  del adxcdy1
                                                  del adxcdy0
                                                  del $232load_global.104
                                                  $244unpack_sequence.114 = exhaust_iter(value=$242call_function.109, count=4) :: UniTuple(float64 x 4)
                                                  del $242call_function.109
                                                  $244unpack_sequence.110 = static_getitem(value=$244unpack_sequence.114, index=0, index_var=None) :: float64
                                                  $244unpack_sequence.111 = static_getitem(value=$244unpack_sequence.114, index=1, index_var=None) :: float64
                                                  $244unpack_sequence.112 = static_getitem(value=$244unpack_sequence.114, index=2, index_var=None) :: float64
                                                  $244unpack_sequence.113 = static_getitem(value=$244unpack_sequence.114, index=3, index_var=None) :: float64
                                                  del $244unpack_sequence.114
                                                  $const248.116 = const(int, 3) :: Literal[int](3)
                                                  ca[3] = $244unpack_sequence.110
                                                  del $const248.116
                                                  del $244unpack_sequence.110
                                                  $const254.118 = const(int, 2) :: Literal[int](2)
                                                  ca[2] = $244unpack_sequence.111
                                                  del $const254.118
                                                  del $244unpack_sequence.111
                                                  $const260.120 = const(int, 1) :: Literal[int](1)
                                                  ca[1] = $244unpack_sequence.112
                                                  del $const260.120
                                                  del $244unpack_sequence.112
                                                  $const266.122 = const(int, 0) :: Literal[int](0)
                                                  ca[0] = $244unpack_sequence.113
                                                  del $const266.122
                                                  del $244unpack_sequence.113
1736:     bxcalen = scale_expansion_zeroelim(4, ca, bdx, bxca, splitter)
        $270load_global.123 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $const272.124 = const(int, 4) :: Literal[int](4)
        $282call_function.129 = call $270load_global.123($const272.124, ca, bdx, bxca, splitter, func=$270load_global.123, args=[Var($const272.124, adaptive_predicates.py:1736), Var(ca, adaptive_predicates.py:1715), Var(bdx, adaptive_predicates.py:1716), Var(bxca, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del $const272.124
        del $270load_global.123
        bxcalen = $282call_function.129 :: int64
        del $282call_function.129
1737:     bxxcalen = scale_expansion_zeroelim(bxcalen, bxca, bdx, bxxca, splitter)
        $286load_global.130 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $298call_function.136 = call $286load_global.130(bxcalen, bxca, bdx, bxxca, splitter, func=$286load_global.130, args=[Var(bxcalen, adaptive_predicates.py:1736), Var(bxca, adaptive_predicates.py:1715), Var(bdx, adaptive_predicates.py:1716), Var(bxxca, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del bxcalen
        del bxca
        del $286load_global.130
        bxxcalen = $298call_function.136 :: int64
        del $298call_function.136
1738:     bycalen = scale_expansion_zeroelim(4, ca, bdy, byca, splitter)
        $302load_global.137 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $const304.138 = const(int, 4) :: Literal[int](4)
        $314call_function.143 = call $302load_global.137($const304.138, ca, bdy, byca, splitter, func=$302load_global.137, args=[Var($const304.138, adaptive_predicates.py:1738), Var(ca, adaptive_predicates.py:1715), Var(bdy, adaptive_predicates.py:1719), Var(byca, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del $const304.138
        del $302load_global.137
        bycalen = $314call_function.143 :: int64
        del $314call_function.143
1739:     byycalen = scale_expansion_zeroelim(bycalen, byca, bdy, byyca, splitter)
        $318load_global.144 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $330call_function.150 = call $318load_global.144(bycalen, byca, bdy, byyca, splitter, func=$318load_global.144, args=[Var(bycalen, adaptive_predicates.py:1738), Var(byca, adaptive_predicates.py:1715), Var(bdy, adaptive_predicates.py:1719), Var(byyca, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del bycalen
        del byca
        del $318load_global.144
        byycalen = $330call_function.150 :: int64
        del $330call_function.150
1740:     blen = fast_expansion_sum_zeroelim(bxxcalen, bxxca, byycalen, byyca, bdet)
        $334load_global.151 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
        $346call_function.157 = call $334load_global.151(bxxcalen, bxxca, byycalen, byyca, bdet, func=$334load_global.151, args=[Var(bxxcalen, adaptive_predicates.py:1737), Var(bxxca, adaptive_predicates.py:1715), Var(byycalen, adaptive_predicates.py:1739), Var(byyca, adaptive_predicates.py:1715), Var(bdet, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
        del byycalen
        del byyca
        del bxxcalen
        del bxxca
        del $334load_global.151
        blen = $346call_function.157 :: int64
        del $346call_function.157
1741:
1742:     adxbdy1, adxbdy0 = Two_Product(adx, bdy, splitter)
        $350load_global.158 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $358call_function.162 = call $350load_global.158(adx, bdy, splitter, func=$350load_global.158, args=[Var(adx, adaptive_predicates.py:1715), Var(bdy, adaptive_predicates.py:1719), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del $350load_global.158
        $360unpack_sequence.165 = exhaust_iter(value=$358call_function.162, count=2) :: UniTuple(float64 x 2)
        del $358call_function.162
        $360unpack_sequence.163 = static_getitem(value=$360unpack_sequence.165, index=0, index_var=None) :: float64
        $360unpack_sequence.164 = static_getitem(value=$360unpack_sequence.165, index=1, index_var=None) :: float64
        del $360unpack_sequence.165
        adxbdy1 = $360unpack_sequence.163 :: float64
        del $360unpack_sequence.163
        adxbdy0 = $360unpack_sequence.164 :: float64
        del $360unpack_sequence.164
1743:     bdxady1, bdxady0 = Two_Product(bdx, ady, splitter)
        $366load_global.166 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
        $374call_function.170 = call $366load_global.166(bdx, ady, splitter, func=$366load_global.166, args=[Var(bdx, adaptive_predicates.py:1716), Var(ady, adaptive_predicates.py:1718), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
        del $366load_global.166
        $376unpack_sequence.173 = exhaust_iter(value=$374call_function.170, count=2) :: UniTuple(float64 x 2)
        del $374call_function.170
        $376unpack_sequence.171 = static_getitem(value=$376unpack_sequence.173, index=0, index_var=None) :: float64
        $376unpack_sequence.172 = static_getitem(value=$376unpack_sequence.173, index=1, index_var=None) :: float64
        del $376unpack_sequence.173
        bdxady1 = $376unpack_sequence.171 :: float64
        del $376unpack_sequence.171
        bdxady0 = $376unpack_sequence.172 :: float64
        del $376unpack_sequence.172
1744:     ab[3], ab[2], ab[1], ab[0] = Two_Two_Diff(adxbdy1, adxbdy0,
        $382load_global.174 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
1745:                                               bdxady1, bdxady0)
                                                  $392call_function.179 = call $382load_global.174(adxbdy1, adxbdy0, bdxady1, bdxady0, func=$382load_global.174, args=[Var(adxbdy1, adaptive_predicates.py:1742), Var(adxbdy0, adaptive_predicates.py:1742), Var(bdxady1, adaptive_predicates.py:1743), Var(bdxady0, adaptive_predicates.py:1743)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                  del bdxady1
                                                  del bdxady0
                                                  del adxbdy1
                                                  del adxbdy0
                                                  del $382load_global.174
                                                  $394unpack_sequence.184 = exhaust_iter(value=$392call_function.179, count=4) :: UniTuple(float64 x 4)
                                                  del $392call_function.179
                                                  $394unpack_sequence.180 = static_getitem(value=$394unpack_sequence.184, index=0, index_var=None) :: float64
                                                  $394unpack_sequence.181 = static_getitem(value=$394unpack_sequence.184, index=1, index_var=None) :: float64
                                                  $394unpack_sequence.182 = static_getitem(value=$394unpack_sequence.184, index=2, index_var=None) :: float64
                                                  $394unpack_sequence.183 = static_getitem(value=$394unpack_sequence.184, index=3, index_var=None) :: float64
                                                  del $394unpack_sequence.184
                                                  $const398.186 = const(int, 3) :: Literal[int](3)
                                                  ab[3] = $394unpack_sequence.180
                                                  del $const398.186
                                                  del $394unpack_sequence.180
                                                  $const404.188 = const(int, 2) :: Literal[int](2)
                                                  ab[2] = $394unpack_sequence.181
                                                  del $const404.188
                                                  del $394unpack_sequence.181
                                                  $const410.190 = const(int, 1) :: Literal[int](1)
                                                  ab[1] = $394unpack_sequence.182
                                                  del $const410.190
                                                  del $394unpack_sequence.182
                                                  $const416.192 = const(int, 0) :: Literal[int](0)
                                                  ab[0] = $394unpack_sequence.183
                                                  del $const416.192
                                                  del $394unpack_sequence.183
1746:     cxablen = scale_expansion_zeroelim(4, ab, cdx, cxab, splitter)
        $420load_global.193 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $const422.194 = const(int, 4) :: Literal[int](4)
        $432call_function.199 = call $420load_global.193($const422.194, ab, cdx, cxab, splitter, func=$420load_global.193, args=[Var($const422.194, adaptive_predicates.py:1746), Var(ab, adaptive_predicates.py:1715), Var(cdx, adaptive_predicates.py:1717), Var(cxab, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del $const422.194
        del $420load_global.193
        cxablen = $432call_function.199 :: int64
        del $432call_function.199
1747:     cxxablen = scale_expansion_zeroelim(cxablen, cxab, cdx, cxxab, splitter)
        $436load_global.200 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $448call_function.206 = call $436load_global.200(cxablen, cxab, cdx, cxxab, splitter, func=$436load_global.200, args=[Var(cxablen, adaptive_predicates.py:1746), Var(cxab, adaptive_predicates.py:1715), Var(cdx, adaptive_predicates.py:1717), Var(cxxab, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del cxablen
        del cxab
        del $436load_global.200
        cxxablen = $448call_function.206 :: int64
        del $448call_function.206
1748:     cyablen = scale_expansion_zeroelim(4, ab, cdy, cyab, splitter)
        $452load_global.207 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $const454.208 = const(int, 4) :: Literal[int](4)
        $464call_function.213 = call $452load_global.207($const454.208, ab, cdy, cyab, splitter, func=$452load_global.207, args=[Var($const454.208, adaptive_predicates.py:1748), Var(ab, adaptive_predicates.py:1715), Var(cdy, adaptive_predicates.py:1720), Var(cyab, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del $const454.208
        del $452load_global.207
        cyablen = $464call_function.213 :: int64
        del $464call_function.213
1749:     cyyablen = scale_expansion_zeroelim(cyablen, cyab, cdy, cyyab, splitter)
        $468load_global.214 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
        $480call_function.220 = call $468load_global.214(cyablen, cyab, cdy, cyyab, splitter, func=$468load_global.214, args=[Var(cyablen, adaptive_predicates.py:1748), Var(cyab, adaptive_predicates.py:1715), Var(cdy, adaptive_predicates.py:1720), Var(cyyab, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
        del cyablen
        del cyab
        del $468load_global.214
        cyyablen = $480call_function.220 :: int64
        del $480call_function.220
1750:     clen = fast_expansion_sum_zeroelim(cxxablen, cxxab, cyyablen, cyyab, cdet)
        $484load_global.221 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
        $496call_function.227 = call $484load_global.221(cxxablen, cxxab, cyyablen, cyyab, cdet, func=$484load_global.221, args=[Var(cxxablen, adaptive_predicates.py:1747), Var(cxxab, adaptive_predicates.py:1715), Var(cyyablen, adaptive_predicates.py:1749), Var(cyyab, adaptive_predicates.py:1715), Var(cdet, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
        del cyyablen
        del cyyab
        del cxxablen
        del cxxab
        del $484load_global.221
        clen = $496call_function.227 :: int64
        del $496call_function.227
1751:
1752:     ablen = fast_expansion_sum_zeroelim(alen, adet, blen, bdet, abdet)
        $500load_global.228 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
        $512call_function.234 = call $500load_global.228(alen, adet, blen, bdet, abdet, func=$500load_global.228, args=[Var(alen, adaptive_predicates.py:1730), Var(adet, adaptive_predicates.py:1715), Var(blen, adaptive_predicates.py:1740), Var(bdet, adaptive_predicates.py:1715), Var(abdet, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
        del blen
        del bdet
        del alen
        del adet
        del $500load_global.228
        ablen = $512call_function.234 :: int64
        del $512call_function.234
1753:     finlength = fast_expansion_sum_zeroelim(ablen, abdet, clen, cdet, fin1)
        $516load_global.235 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
        $528call_function.241 = call $516load_global.235(ablen, abdet, clen, cdet, fin1, func=$516load_global.235, args=[Var(ablen, adaptive_predicates.py:1752), Var(abdet, adaptive_predicates.py:1715), Var(clen, adaptive_predicates.py:1750), Var(cdet, adaptive_predicates.py:1715), Var(fin1, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
        del clen
        del cdet
        del ablen
        del abdet
        del $516load_global.235
        finlength = $528call_function.241 :: int64
        del $528call_function.241
1754:
1755:     det = estimate(finlength, fin1)
        $532load_global.242 = global(estimate: CPUDispatcher(<function estimate at 0x7f51d44729e0>)) :: type(CPUDispatcher(<function estimate at 0x7f51d44729e0>))
        $538call_function.245 = call $532load_global.242(finlength, fin1, func=$532load_global.242, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C)) -> float64
        del $532load_global.242
        det = $538call_function.245 :: float64
        del $538call_function.245
1756:     errbound = iccerrboundB * permanent
        $546binary_multiply.248 = iccerrboundB * permanent :: float64
        del iccerrboundB
        errbound = $546binary_multiply.248 :: float64
        del $546binary_multiply.248
1757:     if (det >= errbound) or (-det >= errbound):
        $554compare_op.251 = det >= errbound :: bool
        branch $554compare_op.251, 572, 560
      label 560
        del $554compare_op.251
        $562unary_negative.1 = unary(fn=<built-in function neg>, value=det) :: float64
        $566compare_op.3 = $562unary_negative.1 >= errbound :: bool
        del errbound
        del $562unary_negative.1
        branch $566compare_op.3, 572, 580
1758:         return det, 2
          label 572
            del v
            del u
            del temp8
            del temp64
            del temp48
            del temp32b
            del temp32a
            del temp16c
            del temp16b
            del temp16a
            del splitter
            del resulterrbound
            del permanent
            del pd_y
            del pd_x
            del pc_y
            del pc_x
            del pb_y
            del pb_x
            del pa_y
            del pa_x
            del iccerrboundC
            del finlength
            del fin2
            del fin1
            del errbound
            del cytbb
            del cytabtt
            del cytabt
            del cytab
            del cytaa
            del cxtbb
            del cxtabtt
            del cxtabt
            del cxtab
            del cxtaa
            del cdy
            del cdx
            del cc
            del catt
            del cat
            del ca
            del bytcc
            del bytcatt
            del bytcat
            del bytca
            del bytaa
            del bxtcc
            del bxtcatt
            del bxtcat
            del bxtca
            del bxtaa
            del bdy
            del bdx
            del bctt
            del bct
            del bc
            del bb
            del aytcc
            del aytbctt
            del aytbct
            del aytbc
            del aytbb
            del axtcc
            del axtbctt
            del axtbct
            del axtbc
            del axtbb
            del ady
            del adx
            del abtt
            del abt
            del ab
            del aa
            del $566compare_op.3
            del $554compare_op.251
            $const574.1 = const(int, 2) :: Literal[int](2)
            $576build_tuple.2 = build_tuple(items=[Var(det, adaptive_predicates.py:1755), Var($const574.1, adaptive_predicates.py:1758)]) :: Tuple(float64, Literal[int](2))
            del det
            del $const574.1
            $578return_value.3 = cast(value=$576build_tuple.2) :: Tuple(float64, Literal[int](2))
            del $576build_tuple.2
            return $578return_value.3
1759:
1760:     adxtail = Two_Diff_Tail(pa_x, pd_x, adx)
      label 580
        del $566compare_op.3
        $580load_global.0 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $588call_function.4 = call $580load_global.0(pa_x, pd_x, adx, func=$580load_global.0, args=[Var(pa_x, adaptive_predicates.py:1715), Var(pd_x, adaptive_predicates.py:1715), Var(adx, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pa_x
        del $580load_global.0
        adxtail = $588call_function.4 :: float64
        del $588call_function.4
1761:     adytail = Two_Diff_Tail(pa_y, pd_y, ady)
        $592load_global.5 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $600call_function.9 = call $592load_global.5(pa_y, pd_y, ady, func=$592load_global.5, args=[Var(pa_y, adaptive_predicates.py:1715), Var(pd_y, adaptive_predicates.py:1715), Var(ady, adaptive_predicates.py:1718)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pa_y
        del $592load_global.5
        adytail = $600call_function.9 :: float64
        del $600call_function.9
1762:     bdxtail = Two_Diff_Tail(pb_x, pd_x, bdx)
        $604load_global.10 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $612call_function.14 = call $604load_global.10(pb_x, pd_x, bdx, func=$604load_global.10, args=[Var(pb_x, adaptive_predicates.py:1715), Var(pd_x, adaptive_predicates.py:1715), Var(bdx, adaptive_predicates.py:1716)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pb_x
        del $604load_global.10
        bdxtail = $612call_function.14 :: float64
        del $612call_function.14
1763:     bdytail = Two_Diff_Tail(pb_y, pd_y, bdy)
        $616load_global.15 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $624call_function.19 = call $616load_global.15(pb_y, pd_y, bdy, func=$616load_global.15, args=[Var(pb_y, adaptive_predicates.py:1715), Var(pd_y, adaptive_predicates.py:1715), Var(bdy, adaptive_predicates.py:1719)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pb_y
        del $616load_global.15
        bdytail = $624call_function.19 :: float64
        del $624call_function.19
1764:     cdxtail = Two_Diff_Tail(pc_x, pd_x, cdx)
        $628load_global.20 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $636call_function.24 = call $628load_global.20(pc_x, pd_x, cdx, func=$628load_global.20, args=[Var(pc_x, adaptive_predicates.py:1715), Var(pd_x, adaptive_predicates.py:1715), Var(cdx, adaptive_predicates.py:1717)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pd_x
        del pc_x
        del $628load_global.20
        cdxtail = $636call_function.24 :: float64
        del $636call_function.24
1765:     cdytail = Two_Diff_Tail(pc_y, pd_y, cdy)
        $640load_global.25 = global(Two_Diff_Tail: CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>)) :: type(CPUDispatcher(<function Two_Diff_Tail at 0x7f51d4cc5f80>))
        $648call_function.29 = call $640load_global.25(pc_y, pd_y, cdy, func=$640load_global.25, args=[Var(pc_y, adaptive_predicates.py:1715), Var(pd_y, adaptive_predicates.py:1715), Var(cdy, adaptive_predicates.py:1720)], kws=(), vararg=None) :: (float64, float64, float64) -> float64
        del pd_y
        del pc_y
        del $640load_global.25
        cdytail = $648call_function.29 :: float64
        del $648call_function.29
1766:     if (adxtail == 0.0) and (bdxtail == 0.0) and (cdxtail == 0.0) and \
        $const654.31 = const(float, 0.0) :: float64
        $656compare_op.32 = adxtail == $const654.31 :: bool
        del $const654.31
        branch $656compare_op.32, 662, 720
      label 662
        del $656compare_op.32
        $const664.1 = const(float, 0.0) :: float64
        $666compare_op.2 = bdxtail == $const664.1 :: bool
        del $const664.1
        branch $666compare_op.2, 672, 720
      label 672
        del $666compare_op.2
        $const674.1 = const(float, 0.0) :: float64
        $676compare_op.2 = cdxtail == $const674.1 :: bool
        del $const674.1
        branch $676compare_op.2, 682, 720
1767:             (adytail == 0.0) and (bdytail == 0.0) and (cdytail == 0.0):
              label 682
                del $676compare_op.2
                $const684.1 = const(float, 0.0) :: float64
                $686compare_op.2 = adytail == $const684.1 :: bool
                del $const684.1
                branch $686compare_op.2, 692, 720
              label 692
                del $686compare_op.2
                $const694.1 = const(float, 0.0) :: float64
                $696compare_op.2 = bdytail == $const694.1 :: bool
                del $const694.1
                branch $696compare_op.2, 702, 720
              label 702
                del $696compare_op.2
                $const704.1 = const(float, 0.0) :: float64
                $706compare_op.2 = cdytail == $const704.1 :: bool
                del $const704.1
                branch $706compare_op.2, 712, 720
1768:         return det, 3
          label 712
            del v
            del u
            del temp8
            del temp64
            del temp48
            del temp32b
            del temp32a
            del temp16c
            del temp16b
            del temp16a
            del splitter
            del resulterrbound
            del permanent
            del iccerrboundC
            del finlength
            del fin2
            del fin1
            del cytbb
            del cytabtt
            del cytabt
            del cytab
            del cytaa
            del cxtbb
            del cxtabtt
            del cxtabt
            del cxtab
            del cxtaa
            del cdytail
            del cdy
            del cdxtail
            del cdx
            del cc
            del catt
            del cat
            del ca
            del bytcc
            del bytcatt
            del bytcat
            del bytca
            del bytaa
            del bxtcc
            del bxtcatt
            del bxtcat
            del bxtca
            del bxtaa
            del bdytail
            del bdy
            del bdxtail
            del bdx
            del bctt
            del bct
            del bc
            del bb
            del aytcc
            del aytbctt
            del aytbct
            del aytbc
            del aytbb
            del axtcc
            del axtbctt
            del axtbct
            del axtbc
            del axtbb
            del adytail
            del ady
            del adxtail
            del adx
            del abtt
            del abt
            del ab
            del aa
            del $706compare_op.2
            $const714.1 = const(int, 3) :: Literal[int](3)
            $716build_tuple.2 = build_tuple(items=[Var(det, adaptive_predicates.py:1755), Var($const714.1, adaptive_predicates.py:1768)]) :: Tuple(float64, Literal[int](3))
            del det
            del $const714.1
            $718return_value.3 = cast(value=$716build_tuple.2) :: Tuple(float64, Literal[int](3))
            del $716build_tuple.2
            return $718return_value.3
1769:
1770:
1771:     errbound = iccerrboundC * permanent + resulterrbound * np.abs(det)
      label 720
        del $706compare_op.2
        del $696compare_op.2
        del $686compare_op.2
        del $676compare_op.2
        del $666compare_op.2
        del $656compare_op.32
        $724binary_multiply.2 = iccerrboundC * permanent :: float64
        del permanent
        del iccerrboundC
        $728load_global.4 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $730load_method.5 = getattr(value=$728load_global.4, attr=abs) :: Function(<ufunc 'absolute'>)
        del $728load_global.4
        $734call_method.7 = call $730load_method.5(det, func=$730load_method.5, args=[Var(det, adaptive_predicates.py:1755)], kws=(), vararg=None) :: (float64,) -> float64
        del $730load_method.5
        $736binary_multiply.8 = resulterrbound * $734call_method.7 :: float64
        del resulterrbound
        del $734call_method.7
        $738binary_add.9 = $724binary_multiply.2 + $736binary_multiply.8 :: float64
        del $736binary_multiply.8
        del $724binary_multiply.2
        errbound = $738binary_add.9 :: float64
        del $738binary_add.9
1772:     det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail)
1773:                                        - (bdy * cdxtail + cdx * bdytail))
1774:             + 2.0*(adx * adxtail + ady * adytail)*(bdx * cdy - bdy * cdx)) + \
1775:            ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail)
1776:                                        - (cdy * adxtail + adx * cdytail))
1777:             + 2.0*(bdx * bdxtail + bdy * bdytail)*(cdx * ady - cdy * adx)) + \
                $748binary_multiply.13 = adx * adx :: float64
                $754binary_multiply.16 = ady * ady :: float64
                $756binary_add.17 = $748binary_multiply.13 + $754binary_multiply.16 :: float64
                del $754binary_multiply.16
                del $748binary_multiply.13
                $762binary_multiply.20 = bdx * cdytail :: float64
                $768binary_multiply.23 = cdy * bdxtail :: float64
                $770binary_add.24 = $762binary_multiply.20 + $768binary_multiply.23 :: float64
                del $768binary_multiply.23
                del $762binary_multiply.20
                $776binary_multiply.27 = bdy * cdxtail :: float64
                $782binary_multiply.30 = cdx * bdytail :: float64
                $784binary_add.31 = $776binary_multiply.27 + $782binary_multiply.30 :: float64
                del $782binary_multiply.30
                del $776binary_multiply.27
                $786binary_subtract.32 = $770binary_add.24 - $784binary_add.31 :: float64
                del $784binary_add.31
                del $770binary_add.24
                $788binary_multiply.33 = $756binary_add.17 * $786binary_subtract.32 :: float64
                del $786binary_subtract.32
                del $756binary_add.17
                $const790.34 = const(float, 2.0) :: float64
                $796binary_multiply.37 = adx * adxtail :: float64
                $802binary_multiply.40 = ady * adytail :: float64
                $804binary_add.41 = $796binary_multiply.37 + $802binary_multiply.40 :: float64
                del $802binary_multiply.40
                del $796binary_multiply.37
                $806binary_multiply.42 = $const790.34 * $804binary_add.41 :: float64
                del $const790.34
                del $804binary_add.41
                $812binary_multiply.45 = bdx * cdy :: float64
                $818binary_multiply.48 = bdy * cdx :: float64
                $820binary_subtract.49 = $812binary_multiply.45 - $818binary_multiply.48 :: float64
                del $818binary_multiply.48
                del $812binary_multiply.45
                $822binary_multiply.50 = $806binary_multiply.42 * $820binary_subtract.49 :: float64
                del $820binary_subtract.49
                del $806binary_multiply.42
                $824binary_add.51 = $788binary_multiply.33 + $822binary_multiply.50 :: float64
                del $822binary_multiply.50
                del $788binary_multiply.33
                $830binary_multiply.54 = bdx * bdx :: float64
                $836binary_multiply.57 = bdy * bdy :: float64
                $838binary_add.58 = $830binary_multiply.54 + $836binary_multiply.57 :: float64
                del $836binary_multiply.57
                del $830binary_multiply.54
                $844binary_multiply.61 = cdx * adytail :: float64
                $850binary_multiply.64 = ady * cdxtail :: float64
                $852binary_add.65 = $844binary_multiply.61 + $850binary_multiply.64 :: float64
                del $850binary_multiply.64
                del $844binary_multiply.61
                $858binary_multiply.68 = cdy * adxtail :: float64
                $864binary_multiply.71 = adx * cdytail :: float64
                $866binary_add.72 = $858binary_multiply.68 + $864binary_multiply.71 :: float64
                del $864binary_multiply.71
                del $858binary_multiply.68
                $868binary_subtract.73 = $852binary_add.65 - $866binary_add.72 :: float64
                del $866binary_add.72
                del $852binary_add.65
                $870binary_multiply.74 = $838binary_add.58 * $868binary_subtract.73 :: float64
                del $868binary_subtract.73
                del $838binary_add.58
                $const872.75 = const(float, 2.0) :: float64
                $878binary_multiply.78 = bdx * bdxtail :: float64
                $884binary_multiply.81 = bdy * bdytail :: float64
                $886binary_add.82 = $878binary_multiply.78 + $884binary_multiply.81 :: float64
                del $884binary_multiply.81
                del $878binary_multiply.78
                $888binary_multiply.83 = $const872.75 * $886binary_add.82 :: float64
                del $const872.75
                del $886binary_add.82
                $894binary_multiply.86 = cdx * ady :: float64
                $900binary_multiply.89 = cdy * adx :: float64
                $902binary_subtract.90 = $894binary_multiply.86 - $900binary_multiply.89 :: float64
                del $900binary_multiply.89
                del $894binary_multiply.86
                $904binary_multiply.91 = $888binary_multiply.83 * $902binary_subtract.90 :: float64
                del $902binary_subtract.90
                del $888binary_multiply.83
                $906binary_add.92 = $870binary_multiply.74 + $904binary_multiply.91 :: float64
                del $904binary_multiply.91
                del $870binary_multiply.74
                $908binary_add.93 = $824binary_add.51 + $906binary_add.92 :: float64
                del $906binary_add.92
                del $824binary_add.51
1778:            ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail)
               $914binary_multiply.96 = cdx * cdx :: float64
               $920binary_multiply.99 = cdy * cdy :: float64
               $922binary_add.100 = $914binary_multiply.96 + $920binary_multiply.99 :: float64
               del $920binary_multiply.99
               del $914binary_multiply.96
               $928binary_multiply.103 = adx * bdytail :: float64
               $934binary_multiply.106 = bdy * adxtail :: float64
               $936binary_add.107 = $928binary_multiply.103 + $934binary_multiply.106 :: float64
               del $934binary_multiply.106
               del $928binary_multiply.103
1779:                                        - (ady * bdxtail + bdx * adytail))
                                           $942binary_multiply.110 = ady * bdxtail :: float64
                                           $948binary_multiply.113 = bdx * adytail :: float64
                                           $950binary_add.114 = $942binary_multiply.110 + $948binary_multiply.113 :: float64
                                           del $948binary_multiply.113
                                           del $942binary_multiply.110
                                           $952binary_subtract.115 = $936binary_add.107 - $950binary_add.114 :: float64
                                           del $950binary_add.114
                                           del $936binary_add.107
                                           $954binary_multiply.116 = $922binary_add.100 * $952binary_subtract.115 :: float64
                                           del $952binary_subtract.115
                                           del $922binary_add.100
1780:             + 2.0*(cdx * cdxtail + cdy * cdytail)*(adx * bdy - ady * bdx))
                $const956.117 = const(float, 2.0) :: float64
                $962binary_multiply.120 = cdx * cdxtail :: float64
                $968binary_multiply.123 = cdy * cdytail :: float64
                $970binary_add.124 = $962binary_multiply.120 + $968binary_multiply.123 :: float64
                del $968binary_multiply.123
                del $962binary_multiply.120
                $972binary_multiply.125 = $const956.117 * $970binary_add.124 :: float64
                del $const956.117
                del $970binary_add.124
                $978binary_multiply.128 = adx * bdy :: float64
                $984binary_multiply.131 = ady * bdx :: float64
                $986binary_subtract.132 = $978binary_multiply.128 - $984binary_multiply.131 :: float64
                del $984binary_multiply.131
                del $978binary_multiply.128
                $988binary_multiply.133 = $972binary_multiply.125 * $986binary_subtract.132 :: float64
                del $986binary_subtract.132
                del $972binary_multiply.125
                $990binary_add.134 = $954binary_multiply.116 + $988binary_multiply.133 :: float64
                del $988binary_multiply.133
                del $954binary_multiply.116
                $992binary_add.135 = $908binary_add.93 + $990binary_add.134 :: float64
                del $990binary_add.134
                del $908binary_add.93
                $994inplace_add.136 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=det, rhs=$992binary_add.135, static_lhs=Undefined, static_rhs=Undefined) :: float64
                del $992binary_add.135
                det = $994inplace_add.136 :: float64
                del $994inplace_add.136
1781:     if (det >= errbound) or (-det >= errbound):
        $1002compare_op.139 = det >= errbound :: bool
        branch $1002compare_op.139, 1020, 1008
      label 1008
        del $1002compare_op.139
        $1010unary_negative.1 = unary(fn=<built-in function neg>, value=det) :: float64
        $1014compare_op.3 = $1010unary_negative.1 >= errbound :: bool
        del errbound
        del $1010unary_negative.1
        branch $1014compare_op.3, 1020, 1028
1782:         return det, 4
          label 1020
            del v
            del u
            del temp8
            del temp64
            del temp48
            del temp32b
            del temp32a
            del temp16c
            del temp16b
            del temp16a
            del splitter
            del finlength
            del fin2
            del fin1
            del errbound
            del cytbb
            del cytabtt
            del cytabt
            del cytab
            del cytaa
            del cxtbb
            del cxtabtt
            del cxtabt
            del cxtab
            del cxtaa
            del cdytail
            del cdy
            del cdxtail
            del cdx
            del cc
            del catt
            del cat
            del ca
            del bytcc
            del bytcatt
            del bytcat
            del bytca
            del bytaa
            del bxtcc
            del bxtcatt
            del bxtcat
            del bxtca
            del bxtaa
            del bdytail
            del bdy
            del bdxtail
            del bdx
            del bctt
            del bct
            del bc
            del bb
            del aytcc
            del aytbctt
            del aytbct
            del aytbc
            del aytbb
            del axtcc
            del axtbctt
            del axtbct
            del axtbc
            del axtbb
            del adytail
            del ady
            del adxtail
            del adx
            del abtt
            del abt
            del ab
            del aa
            del $1014compare_op.3
            del $1002compare_op.139
            $const1022.1 = const(int, 4) :: Literal[int](4)
            $1024build_tuple.2 = build_tuple(items=[Var(det, adaptive_predicates.py:1755), Var($const1022.1, adaptive_predicates.py:1782)]) :: Tuple(float64, Literal[int](4))
            del det
            del $const1022.1
            $1026return_value.3 = cast(value=$1024build_tuple.2) :: Tuple(float64, Literal[int](4))
            del $1024build_tuple.2
            return $1026return_value.3
1783:
1784:     # finnow = fin1
1785:     # finother = fin2
1786:
1787:     if (bdxtail != 0.0) or (bdytail != 0.0) or \
      label 1028
        del det
        del $1014compare_op.3
        $const1030.1 = const(float, 0.0) :: float64
        $1032compare_op.2 = bdxtail != $const1030.1 :: bool
        del $const1030.1
        branch $1032compare_op.2, 1068, 1038
      label 1038
        del $1032compare_op.2
        $const1040.1 = const(float, 0.0) :: float64
        $1042compare_op.2 = bdytail != $const1040.1 :: bool
        del $const1040.1
        branch $1042compare_op.2, 1068, 1048
1788:             (cdxtail != 0.0) or (cdytail != 0.0):
              label 1048
                del $1042compare_op.2
                $const1050.1 = const(float, 0.0) :: float64
                $1052compare_op.2 = cdxtail != $const1050.1 :: bool
                del $const1050.1
                branch $1052compare_op.2, 1068, 1058
              label 1058
                del $1052compare_op.2
                $const1060.1 = const(float, 0.0) :: float64
                $1062compare_op.2 = cdytail != $const1060.1 :: bool
                del $const1060.1
                branch $1062compare_op.2, 1068, 1134
1789:         adxadx1, adxadx0 = Square(adx, splitter)
          label 1068
            del $1062compare_op.2
            del $1052compare_op.2
            del $1042compare_op.2
            del $1032compare_op.2
            $1068load_global.0 = global(Square: CPUDispatcher(<function Square at 0x7f51d4cac680>)) :: type(CPUDispatcher(<function Square at 0x7f51d4cac680>))
            $1074call_function.3 = call $1068load_global.0(adx, splitter, func=$1068load_global.0, args=[Var(adx, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $1068load_global.0
            $1076unpack_sequence.6 = exhaust_iter(value=$1074call_function.3, count=2) :: UniTuple(float64 x 2)
            del $1074call_function.3
            $1076unpack_sequence.4 = static_getitem(value=$1076unpack_sequence.6, index=0, index_var=None) :: float64
            $1076unpack_sequence.5 = static_getitem(value=$1076unpack_sequence.6, index=1, index_var=None) :: float64
            del $1076unpack_sequence.6
            adxadx1 = $1076unpack_sequence.4 :: float64
            del $1076unpack_sequence.4
            adxadx0 = $1076unpack_sequence.5 :: float64
            del $1076unpack_sequence.5
1790:         adyady1, adyady0 = Square(ady, splitter)
            $1082load_global.7 = global(Square: CPUDispatcher(<function Square at 0x7f51d4cac680>)) :: type(CPUDispatcher(<function Square at 0x7f51d4cac680>))
            $1088call_function.10 = call $1082load_global.7(ady, splitter, func=$1082load_global.7, args=[Var(ady, adaptive_predicates.py:1718), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $1082load_global.7
            $1090unpack_sequence.13 = exhaust_iter(value=$1088call_function.10, count=2) :: UniTuple(float64 x 2)
            del $1088call_function.10
            $1090unpack_sequence.11 = static_getitem(value=$1090unpack_sequence.13, index=0, index_var=None) :: float64
            $1090unpack_sequence.12 = static_getitem(value=$1090unpack_sequence.13, index=1, index_var=None) :: float64
            del $1090unpack_sequence.13
            adyady1 = $1090unpack_sequence.11 :: float64
            del $1090unpack_sequence.11
            adyady0 = $1090unpack_sequence.12 :: float64
            del $1090unpack_sequence.12
1791:         aa[3], aa[2], aa[1], aa[0] = Two_Two_Sum(adxadx1, adxadx0,
            $1096load_global.14 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
1792:                                                adyady1, adyady0)
                                                   $1106call_function.19 = call $1096load_global.14(adxadx1, adxadx0, adyady1, adyady0, func=$1096load_global.14, args=[Var(adxadx1, adaptive_predicates.py:1789), Var(adxadx0, adaptive_predicates.py:1789), Var(adyady1, adaptive_predicates.py:1790), Var(adyady0, adaptive_predicates.py:1790)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                   del adyady1
                                                   del adyady0
                                                   del adxadx1
                                                   del adxadx0
                                                   del $1096load_global.14
                                                   $1108unpack_sequence.24 = exhaust_iter(value=$1106call_function.19, count=4) :: UniTuple(float64 x 4)
                                                   del $1106call_function.19
                                                   $1108unpack_sequence.20 = static_getitem(value=$1108unpack_sequence.24, index=0, index_var=None) :: float64
                                                   $1108unpack_sequence.21 = static_getitem(value=$1108unpack_sequence.24, index=1, index_var=None) :: float64
                                                   $1108unpack_sequence.22 = static_getitem(value=$1108unpack_sequence.24, index=2, index_var=None) :: float64
                                                   $1108unpack_sequence.23 = static_getitem(value=$1108unpack_sequence.24, index=3, index_var=None) :: float64
                                                   del $1108unpack_sequence.24
                                                   $const1112.26 = const(int, 3) :: Literal[int](3)
                                                   aa[3] = $1108unpack_sequence.20
                                                   del $const1112.26
                                                   del $1108unpack_sequence.20
                                                   $const1118.28 = const(int, 2) :: Literal[int](2)
                                                   aa[2] = $1108unpack_sequence.21
                                                   del $const1118.28
                                                   del $1108unpack_sequence.21
                                                   $const1124.30 = const(int, 1) :: Literal[int](1)
                                                   aa[1] = $1108unpack_sequence.22
                                                   del $const1124.30
                                                   del $1108unpack_sequence.22
                                                   $const1130.32 = const(int, 0) :: Literal[int](0)
                                                   aa[0] = $1108unpack_sequence.23
                                                   del $const1130.32
                                                   del $1108unpack_sequence.23
1793:
1794:     if (cdxtail != 0.0) or (cdytail != 0.0) or \
        jump 1134
      label 1134
        del $1062compare_op.2
        $const1136.1 = const(float, 0.0) :: float64
        $1138compare_op.2 = cdxtail != $const1136.1 :: bool
        del $const1136.1
        branch $1138compare_op.2, 1174, 1144
      label 1144
        del $1138compare_op.2
        $const1146.1 = const(float, 0.0) :: float64
        $1148compare_op.2 = cdytail != $const1146.1 :: bool
        del $const1146.1
        branch $1148compare_op.2, 1174, 1154
1795:             (adxtail != 0.0) or (adytail != 0.0):
              label 1154
                del $1148compare_op.2
                $const1156.1 = const(float, 0.0) :: float64
                $1158compare_op.2 = adxtail != $const1156.1 :: bool
                del $const1156.1
                branch $1158compare_op.2, 1174, 1164
              label 1164
                del $1158compare_op.2
                $const1166.1 = const(float, 0.0) :: float64
                $1168compare_op.2 = adytail != $const1166.1 :: bool
                del $const1166.1
                branch $1168compare_op.2, 1174, 1240
1796:         bdxbdx1, bdxbdx0 = Square(bdx, splitter)
          label 1174
            del $1168compare_op.2
            del $1158compare_op.2
            del $1148compare_op.2
            del $1138compare_op.2
            $1174load_global.0 = global(Square: CPUDispatcher(<function Square at 0x7f51d4cac680>)) :: type(CPUDispatcher(<function Square at 0x7f51d4cac680>))
            $1180call_function.3 = call $1174load_global.0(bdx, splitter, func=$1174load_global.0, args=[Var(bdx, adaptive_predicates.py:1716), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $1174load_global.0
            $1182unpack_sequence.6 = exhaust_iter(value=$1180call_function.3, count=2) :: UniTuple(float64 x 2)
            del $1180call_function.3
            $1182unpack_sequence.4 = static_getitem(value=$1182unpack_sequence.6, index=0, index_var=None) :: float64
            $1182unpack_sequence.5 = static_getitem(value=$1182unpack_sequence.6, index=1, index_var=None) :: float64
            del $1182unpack_sequence.6
            bdxbdx1 = $1182unpack_sequence.4 :: float64
            del $1182unpack_sequence.4
            bdxbdx0 = $1182unpack_sequence.5 :: float64
            del $1182unpack_sequence.5
1797:         bdybdy1, bdybdy0 = Square(bdy, splitter)
            $1188load_global.7 = global(Square: CPUDispatcher(<function Square at 0x7f51d4cac680>)) :: type(CPUDispatcher(<function Square at 0x7f51d4cac680>))
            $1194call_function.10 = call $1188load_global.7(bdy, splitter, func=$1188load_global.7, args=[Var(bdy, adaptive_predicates.py:1719), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $1188load_global.7
            $1196unpack_sequence.13 = exhaust_iter(value=$1194call_function.10, count=2) :: UniTuple(float64 x 2)
            del $1194call_function.10
            $1196unpack_sequence.11 = static_getitem(value=$1196unpack_sequence.13, index=0, index_var=None) :: float64
            $1196unpack_sequence.12 = static_getitem(value=$1196unpack_sequence.13, index=1, index_var=None) :: float64
            del $1196unpack_sequence.13
            bdybdy1 = $1196unpack_sequence.11 :: float64
            del $1196unpack_sequence.11
            bdybdy0 = $1196unpack_sequence.12 :: float64
            del $1196unpack_sequence.12
1798:         bb[3], bb[2], bb[1], bb[0] = Two_Two_Sum(bdxbdx1, bdxbdx0,
            $1202load_global.14 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
1799:                                                  bdybdy1, bdybdy0)
                                                     $1212call_function.19 = call $1202load_global.14(bdxbdx1, bdxbdx0, bdybdy1, bdybdy0, func=$1202load_global.14, args=[Var(bdxbdx1, adaptive_predicates.py:1796), Var(bdxbdx0, adaptive_predicates.py:1796), Var(bdybdy1, adaptive_predicates.py:1797), Var(bdybdy0, adaptive_predicates.py:1797)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                     del bdybdy1
                                                     del bdybdy0
                                                     del bdxbdx1
                                                     del bdxbdx0
                                                     del $1202load_global.14
                                                     $1214unpack_sequence.24 = exhaust_iter(value=$1212call_function.19, count=4) :: UniTuple(float64 x 4)
                                                     del $1212call_function.19
                                                     $1214unpack_sequence.20 = static_getitem(value=$1214unpack_sequence.24, index=0, index_var=None) :: float64
                                                     $1214unpack_sequence.21 = static_getitem(value=$1214unpack_sequence.24, index=1, index_var=None) :: float64
                                                     $1214unpack_sequence.22 = static_getitem(value=$1214unpack_sequence.24, index=2, index_var=None) :: float64
                                                     $1214unpack_sequence.23 = static_getitem(value=$1214unpack_sequence.24, index=3, index_var=None) :: float64
                                                     del $1214unpack_sequence.24
                                                     $const1218.26 = const(int, 3) :: Literal[int](3)
                                                     bb[3] = $1214unpack_sequence.20
                                                     del $const1218.26
                                                     del $1214unpack_sequence.20
                                                     $const1224.28 = const(int, 2) :: Literal[int](2)
                                                     bb[2] = $1214unpack_sequence.21
                                                     del $const1224.28
                                                     del $1214unpack_sequence.21
                                                     $const1230.30 = const(int, 1) :: Literal[int](1)
                                                     bb[1] = $1214unpack_sequence.22
                                                     del $const1230.30
                                                     del $1214unpack_sequence.22
                                                     $const1236.32 = const(int, 0) :: Literal[int](0)
                                                     bb[0] = $1214unpack_sequence.23
                                                     del $const1236.32
                                                     del $1214unpack_sequence.23
1800:
1801:     if (adxtail != 0.0) or (adytail != 0.0) or \
        jump 1240
      label 1240
        del $1168compare_op.2
        $const1242.1 = const(float, 0.0) :: float64
        $1244compare_op.2 = adxtail != $const1242.1 :: bool
        del $const1242.1
        branch $1244compare_op.2, 1280, 1250
      label 1250
        del $1244compare_op.2
        $const1252.1 = const(float, 0.0) :: float64
        $1254compare_op.2 = adytail != $const1252.1 :: bool
        del $const1252.1
        branch $1254compare_op.2, 1280, 1260
1802:             (bdxtail != 0.0) or (bdytail != 0.0):
              label 1260
                del $1254compare_op.2
                $const1262.1 = const(float, 0.0) :: float64
                $1264compare_op.2 = bdxtail != $const1262.1 :: bool
                del $const1262.1
                branch $1264compare_op.2, 1280, 1270
              label 1270
                del $1264compare_op.2
                $const1272.1 = const(float, 0.0) :: float64
                $1274compare_op.2 = bdytail != $const1272.1 :: bool
                del $const1272.1
                branch $1274compare_op.2, 1280, 1346
1803:         cdxcdx1, cdxcdx0 = Square(cdx, splitter)
          label 1280
            del $1274compare_op.2
            del $1264compare_op.2
            del $1254compare_op.2
            del $1244compare_op.2
            $1280load_global.0 = global(Square: CPUDispatcher(<function Square at 0x7f51d4cac680>)) :: type(CPUDispatcher(<function Square at 0x7f51d4cac680>))
            $1286call_function.3 = call $1280load_global.0(cdx, splitter, func=$1280load_global.0, args=[Var(cdx, adaptive_predicates.py:1717), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $1280load_global.0
            $1288unpack_sequence.6 = exhaust_iter(value=$1286call_function.3, count=2) :: UniTuple(float64 x 2)
            del $1286call_function.3
            $1288unpack_sequence.4 = static_getitem(value=$1288unpack_sequence.6, index=0, index_var=None) :: float64
            $1288unpack_sequence.5 = static_getitem(value=$1288unpack_sequence.6, index=1, index_var=None) :: float64
            del $1288unpack_sequence.6
            cdxcdx1 = $1288unpack_sequence.4 :: float64
            del $1288unpack_sequence.4
            cdxcdx0 = $1288unpack_sequence.5 :: float64
            del $1288unpack_sequence.5
1804:         cdycdy1, cdycdy0 = Square(cdy, splitter)
            $1294load_global.7 = global(Square: CPUDispatcher(<function Square at 0x7f51d4cac680>)) :: type(CPUDispatcher(<function Square at 0x7f51d4cac680>))
            $1300call_function.10 = call $1294load_global.7(cdy, splitter, func=$1294load_global.7, args=[Var(cdy, adaptive_predicates.py:1720), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64) -> UniTuple(float64 x 2)
            del $1294load_global.7
            $1302unpack_sequence.13 = exhaust_iter(value=$1300call_function.10, count=2) :: UniTuple(float64 x 2)
            del $1300call_function.10
            $1302unpack_sequence.11 = static_getitem(value=$1302unpack_sequence.13, index=0, index_var=None) :: float64
            $1302unpack_sequence.12 = static_getitem(value=$1302unpack_sequence.13, index=1, index_var=None) :: float64
            del $1302unpack_sequence.13
            cdycdy1 = $1302unpack_sequence.11 :: float64
            del $1302unpack_sequence.11
            cdycdy0 = $1302unpack_sequence.12 :: float64
            del $1302unpack_sequence.12
1805:         cc[3], cc[2], cc[1], cc[0] = Two_Two_Sum(cdxcdx1, cdxcdx0,
            $1308load_global.14 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
1806:                                                  cdycdy1, cdycdy0)
                                                     $1318call_function.19 = call $1308load_global.14(cdxcdx1, cdxcdx0, cdycdy1, cdycdy0, func=$1308load_global.14, args=[Var(cdxcdx1, adaptive_predicates.py:1803), Var(cdxcdx0, adaptive_predicates.py:1803), Var(cdycdy1, adaptive_predicates.py:1804), Var(cdycdy0, adaptive_predicates.py:1804)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                     del cdycdy1
                                                     del cdycdy0
                                                     del cdxcdx1
                                                     del cdxcdx0
                                                     del $1308load_global.14
                                                     $1320unpack_sequence.24 = exhaust_iter(value=$1318call_function.19, count=4) :: UniTuple(float64 x 4)
                                                     del $1318call_function.19
                                                     $1320unpack_sequence.20 = static_getitem(value=$1320unpack_sequence.24, index=0, index_var=None) :: float64
                                                     $1320unpack_sequence.21 = static_getitem(value=$1320unpack_sequence.24, index=1, index_var=None) :: float64
                                                     $1320unpack_sequence.22 = static_getitem(value=$1320unpack_sequence.24, index=2, index_var=None) :: float64
                                                     $1320unpack_sequence.23 = static_getitem(value=$1320unpack_sequence.24, index=3, index_var=None) :: float64
                                                     del $1320unpack_sequence.24
                                                     $const1324.26 = const(int, 3) :: Literal[int](3)
                                                     cc[3] = $1320unpack_sequence.20
                                                     del $const1324.26
                                                     del $1320unpack_sequence.20
                                                     $const1330.28 = const(int, 2) :: Literal[int](2)
                                                     cc[2] = $1320unpack_sequence.21
                                                     del $const1330.28
                                                     del $1320unpack_sequence.21
                                                     $const1336.30 = const(int, 1) :: Literal[int](1)
                                                     cc[1] = $1320unpack_sequence.22
                                                     del $const1336.30
                                                     del $1320unpack_sequence.22
                                                     $const1342.32 = const(int, 0) :: Literal[int](0)
                                                     cc[0] = $1320unpack_sequence.23
                                                     del $const1342.32
                                                     del $1320unpack_sequence.23
1807:
1808:     if adxtail != 0.0:
        jump 1346
      label 1346
        del $1274compare_op.2
        $const1348.1 = const(float, 0.0) :: float64
        $1350compare_op.2 = adxtail != $const1348.1 :: bool
        del $const1348.1
        branch $1350compare_op.2, 1356, 1516
1809:         axtbclen = scale_expansion_zeroelim(4, bc, adxtail, axtbc, splitter)
          label 1356
            del $1350compare_op.2
            $1356load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1358.1 = const(int, 4) :: Literal[int](4)
            $1368call_function.6 = call $1356load_global.0($const1358.1, bc, adxtail, axtbc, splitter, func=$1356load_global.0, args=[Var($const1358.1, adaptive_predicates.py:1809), Var(bc, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(axtbc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1358.1
            del $1356load_global.0
            axtbclen = $1368call_function.6 :: int64
            del $1368call_function.6
1810:         temp16alen = scale_expansion_zeroelim(axtbclen, axtbc, 2.0 * adx,
            $1372load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1378.10 = const(float, 2.0) :: float64
            $1382binary_multiply.12 = $const1378.10 * adx :: float64
            del $const1378.10
1811:                                               temp16a, splitter)
                                                  $1388call_function.15 = call $1372load_global.7(axtbclen, axtbc, $1382binary_multiply.12, temp16a, splitter, func=$1372load_global.7, args=[Var(axtbclen, adaptive_predicates.py:1809), Var(axtbc, adaptive_predicates.py:1715), Var($1382binary_multiply.12, adaptive_predicates.py:1810), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del $1382binary_multiply.12
                                                  del $1372load_global.7
                                                  temp16alen = $1388call_function.15 :: int64
                                                  del $1388call_function.15
1812:
1813:         axtcclen = scale_expansion_zeroelim(4, cc, adxtail, axtcc, splitter)
            $1392load_global.16 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1394.17 = const(int, 4) :: Literal[int](4)
            $1404call_function.22 = call $1392load_global.16($const1394.17, cc, adxtail, axtcc, splitter, func=$1392load_global.16, args=[Var($const1394.17, adaptive_predicates.py:1813), Var(cc, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(axtcc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1394.17
            del $1392load_global.16
            axtcclen = $1404call_function.22 :: int64
            del $1404call_function.22
1814:         temp16blen = scale_expansion_zeroelim(axtcclen, axtcc, bdy, temp16b,
            $1408load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
1815:                                               splitter)
                                                  $1420call_function.29 = call $1408load_global.23(axtcclen, axtcc, bdy, temp16b, splitter, func=$1408load_global.23, args=[Var(axtcclen, adaptive_predicates.py:1813), Var(axtcc, adaptive_predicates.py:1715), Var(bdy, adaptive_predicates.py:1719), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del axtcclen
                                                  del axtcc
                                                  del $1408load_global.23
                                                  temp16blen = $1420call_function.29 :: int64
                                                  del $1420call_function.29
1816:
1817:         axtbblen = scale_expansion_zeroelim(4, bb, adxtail, axtbb, splitter)
            $1424load_global.30 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1426.31 = const(int, 4) :: Literal[int](4)
            $1436call_function.36 = call $1424load_global.30($const1426.31, bb, adxtail, axtbb, splitter, func=$1424load_global.30, args=[Var($const1426.31, adaptive_predicates.py:1817), Var(bb, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(axtbb, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1426.31
            del $1424load_global.30
            axtbblen = $1436call_function.36 :: int64
            del $1436call_function.36
1818:         temp16clen = scale_expansion_zeroelim(axtbblen, axtbb, -cdy, temp16c,
            $1440load_global.37 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $1448unary_negative.41 = unary(fn=<built-in function neg>, value=cdy) :: float64
1819:                                               splitter)
                                                  $1454call_function.44 = call $1440load_global.37(axtbblen, axtbb, $1448unary_negative.41, temp16c, splitter, func=$1440load_global.37, args=[Var(axtbblen, adaptive_predicates.py:1817), Var(axtbb, adaptive_predicates.py:1715), Var($1448unary_negative.41, adaptive_predicates.py:1818), Var(temp16c, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del axtbblen
                                                  del axtbb
                                                  del $1448unary_negative.41
                                                  del $1440load_global.37
                                                  temp16clen = $1454call_function.44 :: int64
                                                  del $1454call_function.44
1820:
1821:         temp32alen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
            $1458load_global.45 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1822:                                                 temp16blen, temp16b, temp32a)
                                                    $1470call_function.51 = call $1458load_global.45(temp16alen, temp16a, temp16blen, temp16b, temp32a, func=$1458load_global.45, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32a, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp16blen
                                                    del temp16alen
                                                    del $1458load_global.45
                                                    temp32alen = $1470call_function.51 :: int64
                                                    del $1470call_function.51
1823:         temp48len = fast_expansion_sum_zeroelim(temp16clen, temp16c,
            $1474load_global.52 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1824:                                                 temp32alen, temp32a, temp48)
                                                    $1486call_function.58 = call $1474load_global.52(temp16clen, temp16c, temp32alen, temp32a, temp48, func=$1474load_global.52, args=[Var(temp16clen, adaptive_predicates.py:1819), Var(temp16c, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp32alen
                                                    del temp16clen
                                                    del $1474load_global.52
                                                    temp48len = $1486call_function.58 :: int64
                                                    del $1486call_function.58
1825:         # finlength = fast_expansion_sum_zeroelim(finlength, finnow, temp48len,
1826:         # temp48, finother)
1827:         finlength = fast_expansion_sum_zeroelim(finlength, fin1, temp48len,
            $1490load_global.59 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1828:                                                 temp48, fin2)
                                                    $1502call_function.65 = call $1490load_global.59(finlength, fin1, temp48len, temp48, fin2, func=$1490load_global.59, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp48len
                                                    del $1490load_global.59
                                                    finlength = $1502call_function.65 :: int64
                                                    del $1502call_function.65
1829:         # finswap = finnow
1830:         # finnow = finother
1831:         # finother = finswap
1832:         swap(fin1, fin2)
            $1506load_global.66 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
            $1512call_function.69 = call $1506load_global.66(fin1, fin2, func=$1506load_global.66, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
            del $1512call_function.69
            del $1506load_global.66
1833:
1834:     if adytail != 0.0:
        jump 1516
      label 1516
        del axtcc
        del axtbb
        del $1350compare_op.2
        $const1518.1 = const(float, 0.0) :: float64
        $1520compare_op.2 = adytail != $const1518.1 :: bool
        del $const1518.1
        branch $1520compare_op.2, 1526, 1686
1835:         aytbclen = scale_expansion_zeroelim(4, bc, adytail, aytbc, splitter)
          label 1526
            del $1520compare_op.2
            $1526load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1528.1 = const(int, 4) :: Literal[int](4)
            $1538call_function.6 = call $1526load_global.0($const1528.1, bc, adytail, aytbc, splitter, func=$1526load_global.0, args=[Var($const1528.1, adaptive_predicates.py:1835), Var(bc, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(aytbc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del bc
            del $const1528.1
            del $1526load_global.0
            aytbclen = $1538call_function.6 :: int64
            del $1538call_function.6
1836:         temp16alen = scale_expansion_zeroelim(aytbclen, aytbc, 2.0 * ady,
            $1542load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1548.10 = const(float, 2.0) :: float64
            $1552binary_multiply.12 = $const1548.10 * ady :: float64
            del $const1548.10
1837:                                               temp16a, splitter)
                                                  $1558call_function.15 = call $1542load_global.7(aytbclen, aytbc, $1552binary_multiply.12, temp16a, splitter, func=$1542load_global.7, args=[Var(aytbclen, adaptive_predicates.py:1835), Var(aytbc, adaptive_predicates.py:1715), Var($1552binary_multiply.12, adaptive_predicates.py:1836), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del $1552binary_multiply.12
                                                  del $1542load_global.7
                                                  temp16alen = $1558call_function.15 :: int64
                                                  del $1558call_function.15
1838:
1839:         aytbblen = scale_expansion_zeroelim(4, bb, adytail, aytbb, splitter)
            $1562load_global.16 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1564.17 = const(int, 4) :: Literal[int](4)
            $1574call_function.22 = call $1562load_global.16($const1564.17, bb, adytail, aytbb, splitter, func=$1562load_global.16, args=[Var($const1564.17, adaptive_predicates.py:1839), Var(bb, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(aytbb, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1564.17
            del $1562load_global.16
            aytbblen = $1574call_function.22 :: int64
            del $1574call_function.22
1840:         temp16blen = scale_expansion_zeroelim(aytbblen, aytbb, cdx, temp16b,
            $1578load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
1841:                                               splitter)
                                                  $1590call_function.29 = call $1578load_global.23(aytbblen, aytbb, cdx, temp16b, splitter, func=$1578load_global.23, args=[Var(aytbblen, adaptive_predicates.py:1839), Var(aytbb, adaptive_predicates.py:1715), Var(cdx, adaptive_predicates.py:1717), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del aytbblen
                                                  del aytbb
                                                  del $1578load_global.23
                                                  temp16blen = $1590call_function.29 :: int64
                                                  del $1590call_function.29
1842:
1843:         aytcclen = scale_expansion_zeroelim(4, cc, adytail, aytcc, splitter)
            $1594load_global.30 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1596.31 = const(int, 4) :: Literal[int](4)
            $1606call_function.36 = call $1594load_global.30($const1596.31, cc, adytail, aytcc, splitter, func=$1594load_global.30, args=[Var($const1596.31, adaptive_predicates.py:1843), Var(cc, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(aytcc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1596.31
            del $1594load_global.30
            aytcclen = $1606call_function.36 :: int64
            del $1606call_function.36
1844:         temp16clen = scale_expansion_zeroelim(aytcclen, aytcc, -bdx, temp16c,
            $1610load_global.37 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $1618unary_negative.41 = unary(fn=<built-in function neg>, value=bdx) :: float64
1845:                                               splitter)
                                                  $1624call_function.44 = call $1610load_global.37(aytcclen, aytcc, $1618unary_negative.41, temp16c, splitter, func=$1610load_global.37, args=[Var(aytcclen, adaptive_predicates.py:1843), Var(aytcc, adaptive_predicates.py:1715), Var($1618unary_negative.41, adaptive_predicates.py:1844), Var(temp16c, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del aytcclen
                                                  del aytcc
                                                  del $1618unary_negative.41
                                                  del $1610load_global.37
                                                  temp16clen = $1624call_function.44 :: int64
                                                  del $1624call_function.44
1846:
1847:         temp32alen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
            $1628load_global.45 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1848:                                                 temp16blen, temp16b, temp32a)
                                                    $1640call_function.51 = call $1628load_global.45(temp16alen, temp16a, temp16blen, temp16b, temp32a, func=$1628load_global.45, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32a, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp16blen
                                                    del temp16alen
                                                    del $1628load_global.45
                                                    temp32alen = $1640call_function.51 :: int64
                                                    del $1640call_function.51
1849:         temp48len = fast_expansion_sum_zeroelim(temp16clen, temp16c,
            $1644load_global.52 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1850:                                                 temp32alen, temp32a, temp48)
                                                    $1656call_function.58 = call $1644load_global.52(temp16clen, temp16c, temp32alen, temp32a, temp48, func=$1644load_global.52, args=[Var(temp16clen, adaptive_predicates.py:1819), Var(temp16c, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp32alen
                                                    del temp16clen
                                                    del $1644load_global.52
                                                    temp48len = $1656call_function.58 :: int64
                                                    del $1656call_function.58
1851:         # finlength = fast_expansion_sum_zeroelim(finlength, finnow, temp48len,
1852:         # temp48, finother)
1853:         finlength = fast_expansion_sum_zeroelim(finlength, fin1, temp48len,
            $1660load_global.59 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1854:                                                 temp48, fin2)
                                                    $1672call_function.65 = call $1660load_global.59(finlength, fin1, temp48len, temp48, fin2, func=$1660load_global.59, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp48len
                                                    del $1660load_global.59
                                                    finlength = $1672call_function.65 :: int64
                                                    del $1672call_function.65
1855:         # finswap = finnow
1856:         # finnow = finother
1857:         # finother = finswap
1858:         swap(fin1, fin2)
            $1676load_global.66 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
            $1682call_function.69 = call $1676load_global.66(fin1, fin2, func=$1676load_global.66, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
            del $1682call_function.69
            del $1676load_global.66
1859:
1860:     if bdxtail != 0.0:
        jump 1686
      label 1686
        del bc
        del aytcc
        del aytbb
        del $1520compare_op.2
        $const1688.1 = const(float, 0.0) :: float64
        $1690compare_op.2 = bdxtail != $const1688.1 :: bool
        del $const1688.1
        branch $1690compare_op.2, 1696, 1856
1861:         bxtcalen = scale_expansion_zeroelim(4, ca, bdxtail, bxtca, splitter)
          label 1696
            del $1690compare_op.2
            $1696load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1698.1 = const(int, 4) :: Literal[int](4)
            $1708call_function.6 = call $1696load_global.0($const1698.1, ca, bdxtail, bxtca, splitter, func=$1696load_global.0, args=[Var($const1698.1, adaptive_predicates.py:1861), Var(ca, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(bxtca, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1698.1
            del $1696load_global.0
            bxtcalen = $1708call_function.6 :: int64
            del $1708call_function.6
1862:         temp16alen = scale_expansion_zeroelim(bxtcalen, bxtca, 2.0 * bdx,
            $1712load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1718.10 = const(float, 2.0) :: float64
            $1722binary_multiply.12 = $const1718.10 * bdx :: float64
            del $const1718.10
1863:                                               temp16a, splitter)
                                                  $1728call_function.15 = call $1712load_global.7(bxtcalen, bxtca, $1722binary_multiply.12, temp16a, splitter, func=$1712load_global.7, args=[Var(bxtcalen, adaptive_predicates.py:1861), Var(bxtca, adaptive_predicates.py:1715), Var($1722binary_multiply.12, adaptive_predicates.py:1862), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del $1722binary_multiply.12
                                                  del $1712load_global.7
                                                  temp16alen = $1728call_function.15 :: int64
                                                  del $1728call_function.15
1864:
1865:         bxtaalen = scale_expansion_zeroelim(4, aa, bdxtail, bxtaa, splitter)
            $1732load_global.16 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1734.17 = const(int, 4) :: Literal[int](4)
            $1744call_function.22 = call $1732load_global.16($const1734.17, aa, bdxtail, bxtaa, splitter, func=$1732load_global.16, args=[Var($const1734.17, adaptive_predicates.py:1865), Var(aa, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(bxtaa, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1734.17
            del $1732load_global.16
            bxtaalen = $1744call_function.22 :: int64
            del $1744call_function.22
1866:         temp16blen = scale_expansion_zeroelim(bxtaalen, bxtaa, cdy, temp16b,
            $1748load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
1867:                                               splitter)
                                                  $1760call_function.29 = call $1748load_global.23(bxtaalen, bxtaa, cdy, temp16b, splitter, func=$1748load_global.23, args=[Var(bxtaalen, adaptive_predicates.py:1865), Var(bxtaa, adaptive_predicates.py:1715), Var(cdy, adaptive_predicates.py:1720), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del bxtaalen
                                                  del bxtaa
                                                  del $1748load_global.23
                                                  temp16blen = $1760call_function.29 :: int64
                                                  del $1760call_function.29
1868:
1869:         bxtcclen = scale_expansion_zeroelim(4, cc, bdxtail, bxtcc, splitter)
            $1764load_global.30 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1766.31 = const(int, 4) :: Literal[int](4)
            $1776call_function.36 = call $1764load_global.30($const1766.31, cc, bdxtail, bxtcc, splitter, func=$1764load_global.30, args=[Var($const1766.31, adaptive_predicates.py:1869), Var(cc, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(bxtcc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1766.31
            del $1764load_global.30
            bxtcclen = $1776call_function.36 :: int64
            del $1776call_function.36
1870:         temp16clen = scale_expansion_zeroelim(bxtcclen, bxtcc, -ady, temp16c,
            $1780load_global.37 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $1788unary_negative.41 = unary(fn=<built-in function neg>, value=ady) :: float64
1871:                                               splitter)
                                                  $1794call_function.44 = call $1780load_global.37(bxtcclen, bxtcc, $1788unary_negative.41, temp16c, splitter, func=$1780load_global.37, args=[Var(bxtcclen, adaptive_predicates.py:1869), Var(bxtcc, adaptive_predicates.py:1715), Var($1788unary_negative.41, adaptive_predicates.py:1870), Var(temp16c, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del bxtcclen
                                                  del bxtcc
                                                  del $1788unary_negative.41
                                                  del $1780load_global.37
                                                  temp16clen = $1794call_function.44 :: int64
                                                  del $1794call_function.44
1872:
1873:         temp32alen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
            $1798load_global.45 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1874:                                                 temp16blen, temp16b, temp32a)
                                                    $1810call_function.51 = call $1798load_global.45(temp16alen, temp16a, temp16blen, temp16b, temp32a, func=$1798load_global.45, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32a, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp16blen
                                                    del temp16alen
                                                    del $1798load_global.45
                                                    temp32alen = $1810call_function.51 :: int64
                                                    del $1810call_function.51
1875:         temp48len = fast_expansion_sum_zeroelim(temp16clen, temp16c,
            $1814load_global.52 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1876:                                                 temp32alen, temp32a, temp48)
                                                    $1826call_function.58 = call $1814load_global.52(temp16clen, temp16c, temp32alen, temp32a, temp48, func=$1814load_global.52, args=[Var(temp16clen, adaptive_predicates.py:1819), Var(temp16c, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp32alen
                                                    del temp16clen
                                                    del $1814load_global.52
                                                    temp48len = $1826call_function.58 :: int64
                                                    del $1826call_function.58
1877:         # finlength = fast_expansion_sum_zeroelim(finlength, finnow, temp48len,
1878:         # temp48, finother)
1879:         finlength = fast_expansion_sum_zeroelim(finlength, fin1, temp48len,
            $1830load_global.59 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1880:                                                 temp48, fin2)
                                                    $1842call_function.65 = call $1830load_global.59(finlength, fin1, temp48len, temp48, fin2, func=$1830load_global.59, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp48len
                                                    del $1830load_global.59
                                                    finlength = $1842call_function.65 :: int64
                                                    del $1842call_function.65
1881:         # finswap = finnow
1882:         # finnow = finother
1883:         # finother = finswap
1884:         swap(fin1, fin2)
            $1846load_global.66 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
            $1852call_function.69 = call $1846load_global.66(fin1, fin2, func=$1846load_global.66, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
            del $1852call_function.69
            del $1846load_global.66
1885:
1886:     if bdytail != 0.0:
        jump 1856
      label 1856
        del bxtcc
        del bxtaa
        del $1690compare_op.2
        $const1858.1 = const(float, 0.0) :: float64
        $1860compare_op.2 = bdytail != $const1858.1 :: bool
        del $const1858.1
        branch $1860compare_op.2, 1866, 2026
1887:         bytcalen = scale_expansion_zeroelim(4, ca, bdytail, bytca, splitter)
          label 1866
            del $1860compare_op.2
            $1866load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1868.1 = const(int, 4) :: Literal[int](4)
            $1878call_function.6 = call $1866load_global.0($const1868.1, ca, bdytail, bytca, splitter, func=$1866load_global.0, args=[Var($const1868.1, adaptive_predicates.py:1887), Var(ca, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(bytca, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del ca
            del $const1868.1
            del $1866load_global.0
            bytcalen = $1878call_function.6 :: int64
            del $1878call_function.6
1888:         temp16alen = scale_expansion_zeroelim(bytcalen, bytca, 2.0 * bdy,
            $1882load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1888.10 = const(float, 2.0) :: float64
            $1892binary_multiply.12 = $const1888.10 * bdy :: float64
            del $const1888.10
1889:                                               temp16a, splitter)
                                                  $1898call_function.15 = call $1882load_global.7(bytcalen, bytca, $1892binary_multiply.12, temp16a, splitter, func=$1882load_global.7, args=[Var(bytcalen, adaptive_predicates.py:1887), Var(bytca, adaptive_predicates.py:1715), Var($1892binary_multiply.12, adaptive_predicates.py:1888), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del $1892binary_multiply.12
                                                  del $1882load_global.7
                                                  temp16alen = $1898call_function.15 :: int64
                                                  del $1898call_function.15
1890:
1891:         bytcclen = scale_expansion_zeroelim(4, cc, bdytail, bytcc, splitter)
            $1902load_global.16 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1904.17 = const(int, 4) :: Literal[int](4)
            $1914call_function.22 = call $1902load_global.16($const1904.17, cc, bdytail, bytcc, splitter, func=$1902load_global.16, args=[Var($const1904.17, adaptive_predicates.py:1891), Var(cc, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(bytcc, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1904.17
            del $1902load_global.16
            bytcclen = $1914call_function.22 :: int64
            del $1914call_function.22
1892:         temp16blen = scale_expansion_zeroelim(bytcclen, bytcc, adx, temp16b,
            $1918load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
1893:                                               splitter)
                                                  $1930call_function.29 = call $1918load_global.23(bytcclen, bytcc, adx, temp16b, splitter, func=$1918load_global.23, args=[Var(bytcclen, adaptive_predicates.py:1891), Var(bytcc, adaptive_predicates.py:1715), Var(adx, adaptive_predicates.py:1715), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del bytcclen
                                                  del bytcc
                                                  del $1918load_global.23
                                                  temp16blen = $1930call_function.29 :: int64
                                                  del $1930call_function.29
1894:
1895:         bytaalen = scale_expansion_zeroelim(4, aa, bdytail, bytaa, splitter)
            $1934load_global.30 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const1936.31 = const(int, 4) :: Literal[int](4)
            $1946call_function.36 = call $1934load_global.30($const1936.31, aa, bdytail, bytaa, splitter, func=$1934load_global.30, args=[Var($const1936.31, adaptive_predicates.py:1895), Var(aa, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(bytaa, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const1936.31
            del $1934load_global.30
            bytaalen = $1946call_function.36 :: int64
            del $1946call_function.36
1896:         temp16clen = scale_expansion_zeroelim(bytaalen, bytaa, -cdx, temp16c,
            $1950load_global.37 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $1958unary_negative.41 = unary(fn=<built-in function neg>, value=cdx) :: float64
1897:                                               splitter)
                                                  $1964call_function.44 = call $1950load_global.37(bytaalen, bytaa, $1958unary_negative.41, temp16c, splitter, func=$1950load_global.37, args=[Var(bytaalen, adaptive_predicates.py:1895), Var(bytaa, adaptive_predicates.py:1715), Var($1958unary_negative.41, adaptive_predicates.py:1896), Var(temp16c, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del bytaalen
                                                  del bytaa
                                                  del $1958unary_negative.41
                                                  del $1950load_global.37
                                                  temp16clen = $1964call_function.44 :: int64
                                                  del $1964call_function.44
1898:
1899:         temp32alen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
            $1968load_global.45 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1900:                                                 temp16blen, temp16b, temp32a)
                                                    $1980call_function.51 = call $1968load_global.45(temp16alen, temp16a, temp16blen, temp16b, temp32a, func=$1968load_global.45, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32a, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp16blen
                                                    del temp16alen
                                                    del $1968load_global.45
                                                    temp32alen = $1980call_function.51 :: int64
                                                    del $1980call_function.51
1901:         temp48len = fast_expansion_sum_zeroelim(temp16clen, temp16c,
            $1984load_global.52 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1902:                                                 temp32alen, temp32a, temp48)
                                                    $1996call_function.58 = call $1984load_global.52(temp16clen, temp16c, temp32alen, temp32a, temp48, func=$1984load_global.52, args=[Var(temp16clen, adaptive_predicates.py:1819), Var(temp16c, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp32alen
                                                    del temp16clen
                                                    del $1984load_global.52
                                                    temp48len = $1996call_function.58 :: int64
                                                    del $1996call_function.58
1903:         # finlength = fast_expansion_sum_zeroelim(finlength, finnow, temp48len,
1904:         # temp48, finother)
1905:         finlength = fast_expansion_sum_zeroelim(finlength, fin1, temp48len,
            $2000load_global.59 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1906:                                                 temp48, fin2)
                                                    $2012call_function.65 = call $2000load_global.59(finlength, fin1, temp48len, temp48, fin2, func=$2000load_global.59, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp48len
                                                    del $2000load_global.59
                                                    finlength = $2012call_function.65 :: int64
                                                    del $2012call_function.65
1907:         # finswap = finnow
1908:         # finnow = finother
1909:         # finother = finswap
1910:         swap(fin1, fin2)
            $2016load_global.66 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
            $2022call_function.69 = call $2016load_global.66(fin1, fin2, func=$2016load_global.66, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
            del $2022call_function.69
            del $2016load_global.66
1911:
1912:     if cdxtail != 0.0:
        jump 2026
      label 2026
        del ca
        del bytcc
        del bytaa
        del $1860compare_op.2
        $const2028.1 = const(float, 0.0) :: float64
        $2030compare_op.2 = cdxtail != $const2028.1 :: bool
        del $const2028.1
        branch $2030compare_op.2, 2036, 2196
1913:         cxtablen = scale_expansion_zeroelim(4, ab, cdxtail, cxtab, splitter)
          label 2036
            del $2030compare_op.2
            $2036load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const2038.1 = const(int, 4) :: Literal[int](4)
            $2048call_function.6 = call $2036load_global.0($const2038.1, ab, cdxtail, cxtab, splitter, func=$2036load_global.0, args=[Var($const2038.1, adaptive_predicates.py:1913), Var(ab, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(cxtab, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const2038.1
            del $2036load_global.0
            cxtablen = $2048call_function.6 :: int64
            del $2048call_function.6
1914:         temp16alen = scale_expansion_zeroelim(cxtablen, cxtab, 2.0 * cdx,
            $2052load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const2058.10 = const(float, 2.0) :: float64
            $2062binary_multiply.12 = $const2058.10 * cdx :: float64
            del $const2058.10
1915:                                               temp16a, splitter)
                                                  $2068call_function.15 = call $2052load_global.7(cxtablen, cxtab, $2062binary_multiply.12, temp16a, splitter, func=$2052load_global.7, args=[Var(cxtablen, adaptive_predicates.py:1913), Var(cxtab, adaptive_predicates.py:1715), Var($2062binary_multiply.12, adaptive_predicates.py:1914), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del $2062binary_multiply.12
                                                  del $2052load_global.7
                                                  temp16alen = $2068call_function.15 :: int64
                                                  del $2068call_function.15
1916:
1917:         cxtbblen = scale_expansion_zeroelim(4, bb, cdxtail, cxtbb, splitter)
            $2072load_global.16 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const2074.17 = const(int, 4) :: Literal[int](4)
            $2084call_function.22 = call $2072load_global.16($const2074.17, bb, cdxtail, cxtbb, splitter, func=$2072load_global.16, args=[Var($const2074.17, adaptive_predicates.py:1917), Var(bb, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(cxtbb, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const2074.17
            del $2072load_global.16
            cxtbblen = $2084call_function.22 :: int64
            del $2084call_function.22
1918:         temp16blen = scale_expansion_zeroelim(cxtbblen, cxtbb, ady, temp16b,
            $2088load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
1919:                                               splitter)
                                                  $2100call_function.29 = call $2088load_global.23(cxtbblen, cxtbb, ady, temp16b, splitter, func=$2088load_global.23, args=[Var(cxtbblen, adaptive_predicates.py:1917), Var(cxtbb, adaptive_predicates.py:1715), Var(ady, adaptive_predicates.py:1718), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del cxtbblen
                                                  del cxtbb
                                                  del $2088load_global.23
                                                  temp16blen = $2100call_function.29 :: int64
                                                  del $2100call_function.29
1920:
1921:         cxtaalen = scale_expansion_zeroelim(4, aa, cdxtail, cxtaa, splitter)
            $2104load_global.30 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const2106.31 = const(int, 4) :: Literal[int](4)
            $2116call_function.36 = call $2104load_global.30($const2106.31, aa, cdxtail, cxtaa, splitter, func=$2104load_global.30, args=[Var($const2106.31, adaptive_predicates.py:1921), Var(aa, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(cxtaa, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const2106.31
            del $2104load_global.30
            cxtaalen = $2116call_function.36 :: int64
            del $2116call_function.36
1922:         temp16clen = scale_expansion_zeroelim(cxtaalen, cxtaa, -bdy, temp16c,
            $2120load_global.37 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $2128unary_negative.41 = unary(fn=<built-in function neg>, value=bdy) :: float64
1923:                                               splitter)
                                                  $2134call_function.44 = call $2120load_global.37(cxtaalen, cxtaa, $2128unary_negative.41, temp16c, splitter, func=$2120load_global.37, args=[Var(cxtaalen, adaptive_predicates.py:1921), Var(cxtaa, adaptive_predicates.py:1715), Var($2128unary_negative.41, adaptive_predicates.py:1922), Var(temp16c, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del cxtaalen
                                                  del cxtaa
                                                  del $2128unary_negative.41
                                                  del $2120load_global.37
                                                  temp16clen = $2134call_function.44 :: int64
                                                  del $2134call_function.44
1924:
1925:         temp32alen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
            $2138load_global.45 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1926:                                                 temp16blen, temp16b, temp32a)
                                                    $2150call_function.51 = call $2138load_global.45(temp16alen, temp16a, temp16blen, temp16b, temp32a, func=$2138load_global.45, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32a, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp16blen
                                                    del temp16alen
                                                    del $2138load_global.45
                                                    temp32alen = $2150call_function.51 :: int64
                                                    del $2150call_function.51
1927:         temp48len = fast_expansion_sum_zeroelim(temp16clen, temp16c,
            $2154load_global.52 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1928:                                                 temp32alen, temp32a, temp48)
                                                    $2166call_function.58 = call $2154load_global.52(temp16clen, temp16c, temp32alen, temp32a, temp48, func=$2154load_global.52, args=[Var(temp16clen, adaptive_predicates.py:1819), Var(temp16c, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp32alen
                                                    del temp16clen
                                                    del $2154load_global.52
                                                    temp48len = $2166call_function.58 :: int64
                                                    del $2166call_function.58
1929:         # finlength = fast_expansion_sum_zeroelim(finlength, finnow, temp48len,
1930:         # temp48, finother)
1931:         finlength = fast_expansion_sum_zeroelim(finlength, fin1, temp48len,
            $2170load_global.59 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1932:                                                 temp48, fin2)
                                                    $2182call_function.65 = call $2170load_global.59(finlength, fin1, temp48len, temp48, fin2, func=$2170load_global.59, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp48len
                                                    del $2170load_global.59
                                                    finlength = $2182call_function.65 :: int64
                                                    del $2182call_function.65
1933:         # finswap = finnow
1934:         # finnow = finother
1935:         # finother = finswap
1936:         swap(fin1, fin2)
            $2186load_global.66 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
            $2192call_function.69 = call $2186load_global.66(fin1, fin2, func=$2186load_global.66, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
            del $2192call_function.69
            del $2186load_global.66
1937:
1938:     if cdytail != 0.0:
        jump 2196
      label 2196
        del cxtbb
        del cxtaa
        del $2030compare_op.2
        $const2198.1 = const(float, 0.0) :: float64
        $2200compare_op.2 = cdytail != $const2198.1 :: bool
        del $const2198.1
        branch $2200compare_op.2, 2206, 2366
1939:         cytablen = scale_expansion_zeroelim(4, ab, cdytail, cytab, splitter)
          label 2206
            del $2200compare_op.2
            $2206load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const2208.1 = const(int, 4) :: Literal[int](4)
            $2218call_function.6 = call $2206load_global.0($const2208.1, ab, cdytail, cytab, splitter, func=$2206load_global.0, args=[Var($const2208.1, adaptive_predicates.py:1939), Var(ab, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(cytab, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del ab
            del $const2208.1
            del $2206load_global.0
            cytablen = $2218call_function.6 :: int64
            del $2218call_function.6
1940:         temp16alen = scale_expansion_zeroelim(cytablen, cytab, 2.0 * cdy,
            $2222load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const2228.10 = const(float, 2.0) :: float64
            $2232binary_multiply.12 = $const2228.10 * cdy :: float64
            del $const2228.10
1941:                                               temp16a, splitter)
                                                  $2238call_function.15 = call $2222load_global.7(cytablen, cytab, $2232binary_multiply.12, temp16a, splitter, func=$2222load_global.7, args=[Var(cytablen, adaptive_predicates.py:1939), Var(cytab, adaptive_predicates.py:1715), Var($2232binary_multiply.12, adaptive_predicates.py:1940), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del $2232binary_multiply.12
                                                  del $2222load_global.7
                                                  temp16alen = $2238call_function.15 :: int64
                                                  del $2238call_function.15
1942:
1943:         cytaalen = scale_expansion_zeroelim(4, aa, cdytail, cytaa, splitter)
            $2242load_global.16 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const2244.17 = const(int, 4) :: Literal[int](4)
            $2254call_function.22 = call $2242load_global.16($const2244.17, aa, cdytail, cytaa, splitter, func=$2242load_global.16, args=[Var($const2244.17, adaptive_predicates.py:1943), Var(aa, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(cytaa, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const2244.17
            del $2242load_global.16
            cytaalen = $2254call_function.22 :: int64
            del $2254call_function.22
1944:         temp16blen = scale_expansion_zeroelim(cytaalen, cytaa, bdx, temp16b,
            $2258load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
1945:                                               splitter)
                                                  $2270call_function.29 = call $2258load_global.23(cytaalen, cytaa, bdx, temp16b, splitter, func=$2258load_global.23, args=[Var(cytaalen, adaptive_predicates.py:1943), Var(cytaa, adaptive_predicates.py:1715), Var(bdx, adaptive_predicates.py:1716), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del cytaalen
                                                  del cytaa
                                                  del $2258load_global.23
                                                  temp16blen = $2270call_function.29 :: int64
                                                  del $2270call_function.29
1946:
1947:         cytbblen = scale_expansion_zeroelim(4, bb, cdytail, cytbb, splitter)
            $2274load_global.30 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $const2276.31 = const(int, 4) :: Literal[int](4)
            $2286call_function.36 = call $2274load_global.30($const2276.31, bb, cdytail, cytbb, splitter, func=$2274load_global.30, args=[Var($const2276.31, adaptive_predicates.py:1947), Var(bb, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(cytbb, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
            del $const2276.31
            del $2274load_global.30
            cytbblen = $2286call_function.36 :: int64
            del $2286call_function.36
1948:         temp16clen = scale_expansion_zeroelim(cytbblen, cytbb, -adx, temp16c,
            $2290load_global.37 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
            $2298unary_negative.41 = unary(fn=<built-in function neg>, value=adx) :: float64
1949:                                               splitter)
                                                  $2304call_function.44 = call $2290load_global.37(cytbblen, cytbb, $2298unary_negative.41, temp16c, splitter, func=$2290load_global.37, args=[Var(cytbblen, adaptive_predicates.py:1947), Var(cytbb, adaptive_predicates.py:1715), Var($2298unary_negative.41, adaptive_predicates.py:1948), Var(temp16c, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                  del cytbblen
                                                  del cytbb
                                                  del $2298unary_negative.41
                                                  del $2290load_global.37
                                                  temp16clen = $2304call_function.44 :: int64
                                                  del $2304call_function.44
1950:
1951:         temp32alen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
            $2308load_global.45 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1952:                                                 temp16blen, temp16b, temp32a)
                                                    $2320call_function.51 = call $2308load_global.45(temp16alen, temp16a, temp16blen, temp16b, temp32a, func=$2308load_global.45, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32a, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp16blen
                                                    del temp16alen
                                                    del $2308load_global.45
                                                    temp32alen = $2320call_function.51 :: int64
                                                    del $2320call_function.51
1953:         temp48len = fast_expansion_sum_zeroelim(temp16clen, temp16c,
            $2324load_global.52 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1954:                                                 temp32alen, temp32a, temp48)
                                                    $2336call_function.58 = call $2324load_global.52(temp16clen, temp16c, temp32alen, temp32a, temp48, func=$2324load_global.52, args=[Var(temp16clen, adaptive_predicates.py:1819), Var(temp16c, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp32alen
                                                    del temp16clen
                                                    del temp16c
                                                    del $2324load_global.52
                                                    temp48len = $2336call_function.58 :: int64
                                                    del $2336call_function.58
1955:         # finlength = fast_expansion_sum_zeroelim(finlength, finnow, temp48len,
1956:         # temp48, finother)
1957:         finlength = fast_expansion_sum_zeroelim(finlength, fin1, temp48len,
            $2340load_global.59 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1958:                                                 temp48, fin2)
                                                    $2352call_function.65 = call $2340load_global.59(finlength, fin1, temp48len, temp48, fin2, func=$2340load_global.59, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                    del temp48len
                                                    del $2340load_global.59
                                                    finlength = $2352call_function.65 :: int64
                                                    del $2352call_function.65
1959:         # finswap = finnow
1960:         # finnow = finother
1961:         # finother = finswap
1962:         swap(fin1, fin2)
            $2356load_global.66 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
            $2362call_function.69 = call $2356load_global.66(fin1, fin2, func=$2356load_global.66, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
            del $2362call_function.69
            del $2356load_global.66
1963:
1964:
1965:     if (adxtail != 0.0) or (adytail != 0.0):
        jump 2366
      label 2366
        del temp16c
        del cytbb
        del cytaa
        del ab
        del $2200compare_op.2
        $const2368.1 = const(float, 0.0) :: float64
        $2370compare_op.2 = adxtail != $const2368.1 :: bool
        del $const2368.1
        branch $2370compare_op.2, 2386, 2376
      label 2376
        del $2370compare_op.2
        $const2378.1 = const(float, 0.0) :: float64
        $2380compare_op.2 = adytail != $const2378.1 :: bool
        del $const2378.1
        branch $2380compare_op.2, 2386, 3292
1966:         if (bdxtail != 0.0) or (bdytail != 0.0) or \
          label 2386
            del $2380compare_op.2
            del $2370compare_op.2
            $const2388.1 = const(float, 0.0) :: float64
            $2390compare_op.2 = bdxtail != $const2388.1 :: bool
            del $const2388.1
            branch $2390compare_op.2, 2426, 2396
          label 2396
            del $2390compare_op.2
            $const2398.1 = const(float, 0.0) :: float64
            $2400compare_op.2 = bdytail != $const2398.1 :: bool
            del $const2398.1
            branch $2400compare_op.2, 2426, 2406
1967:                 (cdxtail != 0.0) or (cdytail != 0.0):
                  label 2406
                    del $2400compare_op.2
                    $const2408.1 = const(float, 0.0) :: float64
                    $2410compare_op.2 = cdxtail != $const2408.1 :: bool
                    del $const2408.1
                    branch $2410compare_op.2, 2426, 2416
                  label 2416
                    del $2410compare_op.2
                    $const2418.1 = const(float, 0.0) :: float64
                    $2420compare_op.2 = cdytail != $const2418.1 :: bool
                    del $const2418.1
                    branch $2420compare_op.2, 2426, 2670
1968:             ti1, ti0 = Two_Product(bdxtail, cdy, splitter)
              label 2426
                del $2420compare_op.2
                del $2410compare_op.2
                del $2400compare_op.2
                del $2390compare_op.2
                $2426load_global.0 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $2434call_function.4 = call $2426load_global.0(bdxtail, cdy, splitter, func=$2426load_global.0, args=[Var(bdxtail, adaptive_predicates.py:1762), Var(cdy, adaptive_predicates.py:1720), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $2426load_global.0
                $2436unpack_sequence.7 = exhaust_iter(value=$2434call_function.4, count=2) :: UniTuple(float64 x 2)
                del $2434call_function.4
                $2436unpack_sequence.5 = static_getitem(value=$2436unpack_sequence.7, index=0, index_var=None) :: float64
                $2436unpack_sequence.6 = static_getitem(value=$2436unpack_sequence.7, index=1, index_var=None) :: float64
                del $2436unpack_sequence.7
                ti1 = $2436unpack_sequence.5 :: float64
                del $2436unpack_sequence.5
                ti0 = $2436unpack_sequence.6 :: float64
                del $2436unpack_sequence.6
1969:             tj1, tj0 = Two_Product(bdx, cdytail, splitter)
                $2442load_global.8 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $2450call_function.12 = call $2442load_global.8(bdx, cdytail, splitter, func=$2442load_global.8, args=[Var(bdx, adaptive_predicates.py:1716), Var(cdytail, adaptive_predicates.py:1765), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $2442load_global.8
                $2452unpack_sequence.15 = exhaust_iter(value=$2450call_function.12, count=2) :: UniTuple(float64 x 2)
                del $2450call_function.12
                $2452unpack_sequence.13 = static_getitem(value=$2452unpack_sequence.15, index=0, index_var=None) :: float64
                $2452unpack_sequence.14 = static_getitem(value=$2452unpack_sequence.15, index=1, index_var=None) :: float64
                del $2452unpack_sequence.15
                tj1 = $2452unpack_sequence.13 :: float64
                del $2452unpack_sequence.13
                tj0 = $2452unpack_sequence.14 :: float64
                del $2452unpack_sequence.14
1970:             u[3], u[2], u[1], u[0] = Two_Two_Sum(ti1, ti0, tj1, tj0)
                $2458load_global.16 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
                $2468call_function.21 = call $2458load_global.16(ti1, ti0, tj1, tj0, func=$2458load_global.16, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                del $2458load_global.16
                $2470unpack_sequence.26 = exhaust_iter(value=$2468call_function.21, count=4) :: UniTuple(float64 x 4)
                del $2468call_function.21
                $2470unpack_sequence.22 = static_getitem(value=$2470unpack_sequence.26, index=0, index_var=None) :: float64
                $2470unpack_sequence.23 = static_getitem(value=$2470unpack_sequence.26, index=1, index_var=None) :: float64
                $2470unpack_sequence.24 = static_getitem(value=$2470unpack_sequence.26, index=2, index_var=None) :: float64
                $2470unpack_sequence.25 = static_getitem(value=$2470unpack_sequence.26, index=3, index_var=None) :: float64
                del $2470unpack_sequence.26
                $const2474.28 = const(int, 3) :: Literal[int](3)
                u[3] = $2470unpack_sequence.22
                del $const2474.28
                del $2470unpack_sequence.22
                $const2480.30 = const(int, 2) :: Literal[int](2)
                u[2] = $2470unpack_sequence.23
                del $const2480.30
                del $2470unpack_sequence.23
                $const2486.32 = const(int, 1) :: Literal[int](1)
                u[1] = $2470unpack_sequence.24
                del $const2486.32
                del $2470unpack_sequence.24
                $const2492.34 = const(int, 0) :: Literal[int](0)
                u[0] = $2470unpack_sequence.25
                del $const2492.34
                del $2470unpack_sequence.25
1971:             negate = -bdy
                $2498unary_negative.36 = unary(fn=<built-in function neg>, value=bdy) :: float64
                negate = $2498unary_negative.36 :: float64
                del $2498unary_negative.36
1972:             ti1, ti0 = Two_Product(cdxtail, negate, splitter)
                $2502load_global.37 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $2510call_function.41 = call $2502load_global.37(cdxtail, negate, splitter, func=$2502load_global.37, args=[Var(cdxtail, adaptive_predicates.py:1764), Var(negate, adaptive_predicates.py:1971), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $2502load_global.37
                $2512unpack_sequence.44 = exhaust_iter(value=$2510call_function.41, count=2) :: UniTuple(float64 x 2)
                del $2510call_function.41
                $2512unpack_sequence.42 = static_getitem(value=$2512unpack_sequence.44, index=0, index_var=None) :: float64
                $2512unpack_sequence.43 = static_getitem(value=$2512unpack_sequence.44, index=1, index_var=None) :: float64
                del $2512unpack_sequence.44
                ti1 = $2512unpack_sequence.42 :: float64
                del $2512unpack_sequence.42
                ti0 = $2512unpack_sequence.43 :: float64
                del $2512unpack_sequence.43
1973:             negate = -bdytail
                $2520unary_negative.46 = unary(fn=<built-in function neg>, value=bdytail) :: float64
                negate = $2520unary_negative.46 :: float64
                del $2520unary_negative.46
1974:             tj1, tj0 = Two_Product(cdx, negate, splitter)
                $2524load_global.47 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $2532call_function.51 = call $2524load_global.47(cdx, negate, splitter, func=$2524load_global.47, args=[Var(cdx, adaptive_predicates.py:1717), Var(negate, adaptive_predicates.py:1971), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del negate
                del $2524load_global.47
                $2534unpack_sequence.54 = exhaust_iter(value=$2532call_function.51, count=2) :: UniTuple(float64 x 2)
                del $2532call_function.51
                $2534unpack_sequence.52 = static_getitem(value=$2534unpack_sequence.54, index=0, index_var=None) :: float64
                $2534unpack_sequence.53 = static_getitem(value=$2534unpack_sequence.54, index=1, index_var=None) :: float64
                del $2534unpack_sequence.54
                tj1 = $2534unpack_sequence.52 :: float64
                del $2534unpack_sequence.52
                tj0 = $2534unpack_sequence.53 :: float64
                del $2534unpack_sequence.53
1975:             v[3], v[2], v[1], v[0] = Two_Two_Sum(ti1, ti0, tj1, tj0)
                $2540load_global.55 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
                $2550call_function.60 = call $2540load_global.55(ti1, ti0, tj1, tj0, func=$2540load_global.55, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                del $2540load_global.55
                $2552unpack_sequence.65 = exhaust_iter(value=$2550call_function.60, count=4) :: UniTuple(float64 x 4)
                del $2550call_function.60
                $2552unpack_sequence.61 = static_getitem(value=$2552unpack_sequence.65, index=0, index_var=None) :: float64
                $2552unpack_sequence.62 = static_getitem(value=$2552unpack_sequence.65, index=1, index_var=None) :: float64
                $2552unpack_sequence.63 = static_getitem(value=$2552unpack_sequence.65, index=2, index_var=None) :: float64
                $2552unpack_sequence.64 = static_getitem(value=$2552unpack_sequence.65, index=3, index_var=None) :: float64
                del $2552unpack_sequence.65
                $const2556.67 = const(int, 3) :: Literal[int](3)
                v[3] = $2552unpack_sequence.61
                del $const2556.67
                del $2552unpack_sequence.61
                $const2562.69 = const(int, 2) :: Literal[int](2)
                v[2] = $2552unpack_sequence.62
                del $const2562.69
                del $2552unpack_sequence.62
                $const2568.71 = const(int, 1) :: Literal[int](1)
                v[1] = $2552unpack_sequence.63
                del $const2568.71
                del $2552unpack_sequence.63
                $const2574.73 = const(int, 0) :: Literal[int](0)
                v[0] = $2552unpack_sequence.64
                del $const2574.73
                del $2552unpack_sequence.64
1976:             bctlen = fast_expansion_sum_zeroelim(4, u, 4, v, bct)
                $2578load_global.74 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
                $const2580.75 = const(int, 4) :: Literal[int](4)
                $const2584.77 = const(int, 4) :: Literal[int](4)
                $2590call_function.80 = call $2578load_global.74($const2580.75, u, $const2584.77, v, bct, func=$2578load_global.74, args=[Var($const2580.75, adaptive_predicates.py:1976), Var(u, adaptive_predicates.py:1715), Var($const2584.77, adaptive_predicates.py:1976), Var(v, adaptive_predicates.py:1715), Var(bct, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), Literal[int](4), array(float64, 1d, C), array(float64, 1d, C)) -> int64
                del $const2584.77
                del $const2580.75
                del $2578load_global.74
                bctlen = $2590call_function.80 :: int64
                del $2590call_function.80
1977:
1978:             ti1, ti0 = Two_Product(bdxtail, cdytail, splitter)
                $2594load_global.81 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $2602call_function.85 = call $2594load_global.81(bdxtail, cdytail, splitter, func=$2594load_global.81, args=[Var(bdxtail, adaptive_predicates.py:1762), Var(cdytail, adaptive_predicates.py:1765), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $2594load_global.81
                $2604unpack_sequence.88 = exhaust_iter(value=$2602call_function.85, count=2) :: UniTuple(float64 x 2)
                del $2602call_function.85
                $2604unpack_sequence.86 = static_getitem(value=$2604unpack_sequence.88, index=0, index_var=None) :: float64
                $2604unpack_sequence.87 = static_getitem(value=$2604unpack_sequence.88, index=1, index_var=None) :: float64
                del $2604unpack_sequence.88
                ti1 = $2604unpack_sequence.86 :: float64
                del $2604unpack_sequence.86
                ti0 = $2604unpack_sequence.87 :: float64
                del $2604unpack_sequence.87
1979:             tj1, tj0 = Two_Product(cdxtail, bdytail, splitter)
                $2610load_global.89 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $2618call_function.93 = call $2610load_global.89(cdxtail, bdytail, splitter, func=$2610load_global.89, args=[Var(cdxtail, adaptive_predicates.py:1764), Var(bdytail, adaptive_predicates.py:1763), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $2610load_global.89
                $2620unpack_sequence.96 = exhaust_iter(value=$2618call_function.93, count=2) :: UniTuple(float64 x 2)
                del $2618call_function.93
                $2620unpack_sequence.94 = static_getitem(value=$2620unpack_sequence.96, index=0, index_var=None) :: float64
                $2620unpack_sequence.95 = static_getitem(value=$2620unpack_sequence.96, index=1, index_var=None) :: float64
                del $2620unpack_sequence.96
                tj1 = $2620unpack_sequence.94 :: float64
                del $2620unpack_sequence.94
                tj0 = $2620unpack_sequence.95 :: float64
                del $2620unpack_sequence.95
1980:             bctt[3], bctt[2], bctt[1], bctt[0] = Two_Two_Diff(ti1, ti0, tj1,
                $2626load_global.97 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
1981:                                                               tj0)
                                                                  $2636call_function.102 = call $2626load_global.97(ti1, ti0, tj1, tj0, func=$2626load_global.97, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                                  del tj1
                                                                  del tj0
                                                                  del ti1
                                                                  del ti0
                                                                  del $2626load_global.97
                                                                  $2638unpack_sequence.107 = exhaust_iter(value=$2636call_function.102, count=4) :: UniTuple(float64 x 4)
                                                                  del $2636call_function.102
                                                                  $2638unpack_sequence.103 = static_getitem(value=$2638unpack_sequence.107, index=0, index_var=None) :: float64
                                                                  $2638unpack_sequence.104 = static_getitem(value=$2638unpack_sequence.107, index=1, index_var=None) :: float64
                                                                  $2638unpack_sequence.105 = static_getitem(value=$2638unpack_sequence.107, index=2, index_var=None) :: float64
                                                                  $2638unpack_sequence.106 = static_getitem(value=$2638unpack_sequence.107, index=3, index_var=None) :: float64
                                                                  del $2638unpack_sequence.107
                                                                  $const2642.109 = const(int, 3) :: Literal[int](3)
                                                                  bctt[3] = $2638unpack_sequence.103
                                                                  del $const2642.109
                                                                  del $2638unpack_sequence.103
                                                                  $const2648.111 = const(int, 2) :: Literal[int](2)
                                                                  bctt[2] = $2638unpack_sequence.104
                                                                  del $const2648.111
                                                                  del $2638unpack_sequence.104
                                                                  $const2654.113 = const(int, 1) :: Literal[int](1)
                                                                  bctt[1] = $2638unpack_sequence.105
                                                                  del $const2654.113
                                                                  del $2638unpack_sequence.105
                                                                  $const2660.115 = const(int, 0) :: Literal[int](0)
                                                                  bctt[0] = $2638unpack_sequence.106
                                                                  del $const2660.115
                                                                  del $2638unpack_sequence.106
1982:             bcttlen = 4
                $const2664.116 = const(int, 4) :: Literal[int](4)
                bcttlen = $const2664.116 :: int64
                del $const2664.116
                jump 2694
1983:         else:
1984:             bct[0] = 0.0
              label 2670
                del $2420compare_op.2
                $const2670.0 = const(float, 0.0) :: float64
                $const2674.2 = const(int, 0) :: Literal[int](0)
                bct[0] = $const2670.0
                del $const2674.2
                del $const2670.0
1985:             bctlen = 1
                $const2678.3 = const(int, 1) :: Literal[int](1)
                bctlen = $const2678.3 :: int64
                del $const2678.3
1986:             bctt[0] = 0.0
                $const2682.4 = const(float, 0.0) :: float64
                $const2686.6 = const(int, 0) :: Literal[int](0)
                bctt[0] = $const2682.4
                del $const2686.6
                del $const2682.4
1987:             bcttlen = 1
                $const2690.7 = const(int, 1) :: Literal[int](1)
                bcttlen = $const2690.7 :: int64
                del $const2690.7
1988:
1989:         if adxtail != 0.0:
            jump 2694
          label 2694
            $const2696.1 = const(float, 0.0) :: float64
            $2698compare_op.2 = adxtail != $const2696.1 :: bool
            del $const2696.1
            branch $2698compare_op.2, 2704, 3062
1990:             temp16alen = scale_expansion_zeroelim(axtbclen, axtbc, adxtail,
              label 2704
                del $2698compare_op.2
                $2704load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
1991:                                                   temp16a, splitter)
                                                      $2716call_function.6 = call $2704load_global.0(axtbclen, axtbc, adxtail, temp16a, splitter, func=$2704load_global.0, args=[Var(axtbclen, adaptive_predicates.py:1809), Var(axtbc, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del axtbclen
                                                      del axtbc
                                                      del $2704load_global.0
                                                      temp16alen = $2716call_function.6 :: int64
                                                      del $2716call_function.6
1992:             axtbctlen = scale_expansion_zeroelim(bctlen, bct, adxtail, axtbct,
                $2720load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
1993:                                                  splitter)
                                                     $2732call_function.13 = call $2720load_global.7(bctlen, bct, adxtail, axtbct, splitter, func=$2720load_global.7, args=[Var(bctlen, adaptive_predicates.py:1976), Var(bct, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(axtbct, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                     del $2720load_global.7
                                                     axtbctlen = $2732call_function.13 :: int64
                                                     del $2732call_function.13
1994:             temp32alen = scale_expansion_zeroelim(axtbctlen, axtbct, 2.0 * adx,
                $2736load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                $const2742.17 = const(float, 2.0) :: float64
                $2746binary_multiply.19 = $const2742.17 * adx :: float64
                del $const2742.17
1995:                                                   temp32a, splitter)
                                                      $2752call_function.22 = call $2736load_global.14(axtbctlen, axtbct, $2746binary_multiply.19, temp32a, splitter, func=$2736load_global.14, args=[Var(axtbctlen, adaptive_predicates.py:1993), Var(axtbct, adaptive_predicates.py:1715), Var($2746binary_multiply.19, adaptive_predicates.py:1994), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $2746binary_multiply.19
                                                      del $2736load_global.14
                                                      temp32alen = $2752call_function.22 :: int64
                                                      del $2752call_function.22
1996:             temp48len = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $2756load_global.23 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
1997:                                                     temp32alen, temp32a,
1998:                                                     temp48)
                                                        $2768call_function.29 = call $2756load_global.23(temp16alen, temp16a, temp32alen, temp32a, temp48, func=$2756load_global.23, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32alen
                                                        del temp16alen
                                                        del $2756load_global.23
                                                        temp48len = $2768call_function.29 :: int64
                                                        del $2768call_function.29
1999:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2000:             # temp48len, temp48,
2001:             # finother)
2002:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $2772load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2003:                                                     temp48len, temp48,
2004:                                                     fin2)
                                                        $2784call_function.36 = call $2772load_global.30(finlength, fin1, temp48len, temp48, fin2, func=$2772load_global.30, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp48len
                                                        del $2772load_global.30
                                                        finlength = $2784call_function.36 :: int64
                                                        del $2784call_function.36
2005:             # finswap = finnow
2006:             # finnow = finother
2007:             # finother = finswap
2008:             swap(fin1, fin2)
                $2788load_global.37 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $2794call_function.40 = call $2788load_global.37(fin1, fin2, func=$2788load_global.37, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $2794call_function.40
                del $2788load_global.37
2009:
2010:             if bdytail != 0.0:
                $const2800.42 = const(float, 0.0) :: float64
                $2802compare_op.43 = bdytail != $const2800.42 :: bool
                del $const2800.42
                branch $2802compare_op.43, 2808, 2866
2011:                 temp8len = scale_expansion_zeroelim(4, cc, adxtail, temp8,
                  label 2808
                    del $2802compare_op.43
                    $2808load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                    $const2810.1 = const(int, 4) :: Literal[int](4)
2012:                                                     splitter)
                                                        $2820call_function.6 = call $2808load_global.0($const2810.1, cc, adxtail, temp8, splitter, func=$2808load_global.0, args=[Var($const2810.1, adaptive_predicates.py:2011), Var(cc, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(temp8, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                        del $const2810.1
                                                        del $2808load_global.0
                                                        temp8len = $2820call_function.6 :: int64
                                                        del $2820call_function.6
2013:                 temp16alen = scale_expansion_zeroelim(temp8len, temp8, bdytail,
                    $2824load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2014:                                                       temp16a, splitter)
                                                          $2836call_function.13 = call $2824load_global.7(temp8len, temp8, bdytail, temp16a, splitter, func=$2824load_global.7, args=[Var(temp8len, adaptive_predicates.py:2012), Var(temp8, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                          del temp8len
                                                          del $2824load_global.7
                                                          temp16alen = $2836call_function.13 :: int64
                                                          del $2836call_function.13
2015:                 # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2016:                 # temp16alen, temp16a,
2017:                 # finother)
2018:                 finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                    $2840load_global.14 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2019:                                                         temp16alen, temp16a,
2020:                                                         fin2)
                                                            $2852call_function.20 = call $2840load_global.14(finlength, fin1, temp16alen, temp16a, fin2, func=$2840load_global.14, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                            del temp16alen
                                                            del $2840load_global.14
                                                            finlength = $2852call_function.20 :: int64
                                                            del $2852call_function.20
2021:                 # finswap = finnow
2022:                 # finnow = finother
2023:                 # finother = finswap
2024:                 swap(fin1, fin2)
                    $2856load_global.21 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                    $2862call_function.24 = call $2856load_global.21(fin1, fin2, func=$2856load_global.21, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                    del $2862call_function.24
                    del $2856load_global.21
2025:
2026:             if cdytail != 0.0:
                jump 2866
              label 2866
                del $2802compare_op.43
                $const2868.1 = const(float, 0.0) :: float64
                $2870compare_op.2 = cdytail != $const2868.1 :: bool
                del $const2868.1
                branch $2870compare_op.2, 2876, 2936
2027:                 temp8len = scale_expansion_zeroelim(4, bb, -adxtail, temp8,
                  label 2876
                    del $2870compare_op.2
                    $2876load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                    $const2878.1 = const(int, 4) :: Literal[int](4)
                    $2884unary_negative.4 = unary(fn=<built-in function neg>, value=adxtail) :: float64
2028:                                                     splitter)
                                                        $2890call_function.7 = call $2876load_global.0($const2878.1, bb, $2884unary_negative.4, temp8, splitter, func=$2876load_global.0, args=[Var($const2878.1, adaptive_predicates.py:2027), Var(bb, adaptive_predicates.py:1715), Var($2884unary_negative.4, adaptive_predicates.py:2027), Var(temp8, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                        del $const2878.1
                                                        del $2884unary_negative.4
                                                        del $2876load_global.0
                                                        temp8len = $2890call_function.7 :: int64
                                                        del $2890call_function.7
2029:                 temp16alen = scale_expansion_zeroelim(temp8len, temp8, cdytail,
                    $2894load_global.8 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2030:                                                       temp16a, splitter)
                                                          $2906call_function.14 = call $2894load_global.8(temp8len, temp8, cdytail, temp16a, splitter, func=$2894load_global.8, args=[Var(temp8len, adaptive_predicates.py:2012), Var(temp8, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                          del temp8len
                                                          del $2894load_global.8
                                                          temp16alen = $2906call_function.14 :: int64
                                                          del $2906call_function.14
2031:                 # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2032:                 # temp16alen, temp16a,
2033:                 # finother)
2034:                 finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                    $2910load_global.15 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2035:                                                         temp16alen, temp16a,
2036:                                                         fin2)
                                                            $2922call_function.21 = call $2910load_global.15(finlength, fin1, temp16alen, temp16a, fin2, func=$2910load_global.15, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                            del temp16alen
                                                            del $2910load_global.15
                                                            finlength = $2922call_function.21 :: int64
                                                            del $2922call_function.21
2037:                 # finswap = finnow
2038:                 # finnow = finother
2039:                 # finother = finswap
2040:                 swap(fin1, fin2)
                    $2926load_global.22 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                    $2932call_function.25 = call $2926load_global.22(fin1, fin2, func=$2926load_global.22, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                    del $2932call_function.25
                    del $2926load_global.22
2041:
2042:             temp32alen = scale_expansion_zeroelim(axtbctlen, axtbct, adxtail,
                jump 2936
              label 2936
                del $2870compare_op.2
                $2936load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2043:                                                 temp32a, splitter)
                                                    $2948call_function.6 = call $2936load_global.0(axtbctlen, axtbct, adxtail, temp32a, splitter, func=$2936load_global.0, args=[Var(axtbctlen, adaptive_predicates.py:1993), Var(axtbct, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                    del axtbctlen
                                                    del axtbct
                                                    del $2936load_global.0
                                                    temp32alen = $2948call_function.6 :: int64
                                                    del $2948call_function.6
2044:             axtbcttlen = scale_expansion_zeroelim(bcttlen, bctt, adxtail,
                $2952load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2045:                                                   axtbctt, splitter)
                                                      $2964call_function.13 = call $2952load_global.7(bcttlen, bctt, adxtail, axtbctt, splitter, func=$2952load_global.7, args=[Var(bcttlen, adaptive_predicates.py:1982), Var(bctt, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(axtbctt, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $2952load_global.7
                                                      axtbcttlen = $2964call_function.13 :: int64
                                                      del $2964call_function.13
2046:             temp16alen = scale_expansion_zeroelim(axtbcttlen, axtbctt,
                $2968load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2047:                                                   2.0 * adx, temp16a, splitter)
                                                      $const2974.17 = const(float, 2.0) :: float64
                                                      $2978binary_multiply.19 = $const2974.17 * adx :: float64
                                                      del $const2974.17
                                                      $2984call_function.22 = call $2968load_global.14(axtbcttlen, axtbctt, $2978binary_multiply.19, temp16a, splitter, func=$2968load_global.14, args=[Var(axtbcttlen, adaptive_predicates.py:2045), Var(axtbctt, adaptive_predicates.py:1715), Var($2978binary_multiply.19, adaptive_predicates.py:2047), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $2978binary_multiply.19
                                                      del $2968load_global.14
                                                      temp16alen = $2984call_function.22 :: int64
                                                      del $2984call_function.22
2048:             temp16blen = scale_expansion_zeroelim(axtbcttlen, axtbctt, adxtail,
                $2988load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2049:                                                   temp16b, splitter)
                                                      $3000call_function.29 = call $2988load_global.23(axtbcttlen, axtbctt, adxtail, temp16b, splitter, func=$2988load_global.23, args=[Var(axtbcttlen, adaptive_predicates.py:2045), Var(axtbctt, adaptive_predicates.py:1715), Var(adxtail, adaptive_predicates.py:1760), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del axtbcttlen
                                                      del axtbctt
                                                      del $2988load_global.23
                                                      temp16blen = $3000call_function.29 :: int64
                                                      del $3000call_function.29
2050:             temp32blen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $3004load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2051:                                                      temp16blen, temp16b,
2052:                                                      temp32b)
                                                         $3016call_function.36 = call $3004load_global.30(temp16alen, temp16a, temp16blen, temp16b, temp32b, func=$3004load_global.30, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32b, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                         del temp16blen
                                                         del temp16alen
                                                         del $3004load_global.30
                                                         temp32blen = $3016call_function.36 :: int64
                                                         del $3016call_function.36
2053:             temp64len = fast_expansion_sum_zeroelim(temp32alen, temp32a,
                $3020load_global.37 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2054:                                                     temp32blen, temp32b,
2055:                                                     temp64)
                                                        $3032call_function.43 = call $3020load_global.37(temp32alen, temp32a, temp32blen, temp32b, temp64, func=$3020load_global.37, args=[Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp32blen, adaptive_predicates.py:2052), Var(temp32b, adaptive_predicates.py:1715), Var(temp64, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32blen
                                                        del temp32alen
                                                        del $3020load_global.37
                                                        temp64len = $3032call_function.43 :: int64
                                                        del $3032call_function.43
2056:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2057:             # temp64len, temp64,
2058:             # finother)
2059:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $3036load_global.44 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2060:                                                     temp64len, temp64,
2061:                                                     fin2)
                                                        $3048call_function.50 = call $3036load_global.44(finlength, fin1, temp64len, temp64, fin2, func=$3036load_global.44, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp64len, adaptive_predicates.py:2055), Var(temp64, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp64len
                                                        del $3036load_global.44
                                                        finlength = $3048call_function.50 :: int64
                                                        del $3048call_function.50
2062:             # finswap = finnow
2063:             # finnow = finother
2064:             # finother = finswap
2065:             swap(fin1, fin2)
                $3052load_global.51 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $3058call_function.54 = call $3052load_global.51(fin1, fin2, func=$3052load_global.51, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $3058call_function.54
                del $3052load_global.51
2066:
2067:         if adytail != 0.0:
            jump 3062
          label 3062
            del axtbctt
            del axtbct
            del axtbclen
            del axtbc
            del $2698compare_op.2
            $const3064.1 = const(float, 0.0) :: float64
            $3066compare_op.2 = adytail != $const3064.1 :: bool
            del $const3064.1
            branch $3066compare_op.2, 3072, 3292
2068:             temp16alen = scale_expansion_zeroelim(aytbclen, aytbc, adytail,
              label 3072
                del $3066compare_op.2
                $3072load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2069:                                                   temp16a, splitter)
                                                      $3084call_function.6 = call $3072load_global.0(aytbclen, aytbc, adytail, temp16a, splitter, func=$3072load_global.0, args=[Var(aytbclen, adaptive_predicates.py:1835), Var(aytbc, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del aytbclen
                                                      del aytbc
                                                      del $3072load_global.0
                                                      temp16alen = $3084call_function.6 :: int64
                                                      del $3084call_function.6
2070:             aytbctlen = scale_expansion_zeroelim(bctlen, bct, adytail, aytbct,
                $3088load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2071:                                                  splitter)
                                                     $3100call_function.13 = call $3088load_global.7(bctlen, bct, adytail, aytbct, splitter, func=$3088load_global.7, args=[Var(bctlen, adaptive_predicates.py:1976), Var(bct, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(aytbct, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                     del bctlen
                                                     del bct
                                                     del $3088load_global.7
                                                     aytbctlen = $3100call_function.13 :: int64
                                                     del $3100call_function.13
2072:             temp32alen = scale_expansion_zeroelim(aytbctlen, aytbct, 2.0 * ady,
                $3104load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                $const3110.17 = const(float, 2.0) :: float64
                $3114binary_multiply.19 = $const3110.17 * ady :: float64
                del $const3110.17
2073:                                                   temp32a, splitter)
                                                      $3120call_function.22 = call $3104load_global.14(aytbctlen, aytbct, $3114binary_multiply.19, temp32a, splitter, func=$3104load_global.14, args=[Var(aytbctlen, adaptive_predicates.py:2071), Var(aytbct, adaptive_predicates.py:1715), Var($3114binary_multiply.19, adaptive_predicates.py:2072), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $3114binary_multiply.19
                                                      del $3104load_global.14
                                                      temp32alen = $3120call_function.22 :: int64
                                                      del $3120call_function.22
2074:             temp48len = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $3124load_global.23 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2075:                                                     temp32alen, temp32a,
2076:                                                     temp48)
                                                        $3136call_function.29 = call $3124load_global.23(temp16alen, temp16a, temp32alen, temp32a, temp48, func=$3124load_global.23, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del $3124load_global.23
                                                        temp48len = $3136call_function.29 :: int64
                                                        del $3136call_function.29
2077:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2078:             # temp48len, temp48,
2079:             # finother)
2080:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $3140load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2081:                                                     temp48len, temp48,
2082:                                                     fin2)
                                                        $3152call_function.36 = call $3140load_global.30(finlength, fin1, temp48len, temp48, fin2, func=$3140load_global.30, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp48len
                                                        del $3140load_global.30
                                                        finlength = $3152call_function.36 :: int64
                                                        del $3152call_function.36
2083:             # finswap = finnow
2084:             # finnow = finother
2085:             # finother = finswap
2086:             swap(fin1, fin2)
                $3156load_global.37 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $3162call_function.40 = call $3156load_global.37(fin1, fin2, func=$3156load_global.37, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $3162call_function.40
                del $3156load_global.37
2087:
2088:             temp32alen = scale_expansion_zeroelim(aytbctlen, aytbct, adytail,
                $3166load_global.41 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2089:                                                   temp32a, splitter)
                                                      $3178call_function.47 = call $3166load_global.41(aytbctlen, aytbct, adytail, temp32a, splitter, func=$3166load_global.41, args=[Var(aytbctlen, adaptive_predicates.py:2071), Var(aytbct, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del aytbctlen
                                                      del aytbct
                                                      del $3166load_global.41
                                                      temp32alen = $3178call_function.47 :: int64
                                                      del $3178call_function.47
2090:             aytbcttlen = scale_expansion_zeroelim(bcttlen, bctt, adytail,
                $3182load_global.48 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2091:                                                   aytbctt, splitter)
                                                      $3194call_function.54 = call $3182load_global.48(bcttlen, bctt, adytail, aytbctt, splitter, func=$3182load_global.48, args=[Var(bcttlen, adaptive_predicates.py:1982), Var(bctt, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(aytbctt, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del bcttlen
                                                      del bctt
                                                      del $3182load_global.48
                                                      aytbcttlen = $3194call_function.54 :: int64
                                                      del $3194call_function.54
2092:             temp16alen = scale_expansion_zeroelim(aytbcttlen, aytbctt,
                $3198load_global.55 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2093:                                                   2.0 * ady, temp16a, splitter)
                                                      $const3204.58 = const(float, 2.0) :: float64
                                                      $3208binary_multiply.60 = $const3204.58 * ady :: float64
                                                      del $const3204.58
                                                      $3214call_function.63 = call $3198load_global.55(aytbcttlen, aytbctt, $3208binary_multiply.60, temp16a, splitter, func=$3198load_global.55, args=[Var(aytbcttlen, adaptive_predicates.py:2091), Var(aytbctt, adaptive_predicates.py:1715), Var($3208binary_multiply.60, adaptive_predicates.py:2093), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $3208binary_multiply.60
                                                      del $3198load_global.55
                                                      temp16alen = $3214call_function.63 :: int64
                                                      del $3214call_function.63
2094:             temp16blen = scale_expansion_zeroelim(aytbcttlen, aytbctt, adytail,
                $3218load_global.64 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2095:                                                   temp16b, splitter)
                                                      $3230call_function.70 = call $3218load_global.64(aytbcttlen, aytbctt, adytail, temp16b, splitter, func=$3218load_global.64, args=[Var(aytbcttlen, adaptive_predicates.py:2091), Var(aytbctt, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del aytbcttlen
                                                      del aytbctt
                                                      del $3218load_global.64
                                                      temp16blen = $3230call_function.70 :: int64
                                                      del $3230call_function.70
2096:             temp32blen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $3234load_global.71 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2097:                                                      temp16blen, temp16b,
2098:                                                      temp32b)
                                                         $3246call_function.77 = call $3234load_global.71(temp16alen, temp16a, temp16blen, temp16b, temp32b, func=$3234load_global.71, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32b, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                         del temp16blen
                                                         del temp16alen
                                                         del $3234load_global.71
                                                         temp32blen = $3246call_function.77 :: int64
                                                         del $3246call_function.77
2099:             temp64len = fast_expansion_sum_zeroelim(temp32alen, temp32a,
                $3250load_global.78 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2100:                                                     temp32blen, temp32b,
2101:                                                     temp64)
                                                        $3262call_function.84 = call $3250load_global.78(temp32alen, temp32a, temp32blen, temp32b, temp64, func=$3250load_global.78, args=[Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp32blen, adaptive_predicates.py:2052), Var(temp32b, adaptive_predicates.py:1715), Var(temp64, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32blen
                                                        del temp32alen
                                                        del $3250load_global.78
                                                        temp64len = $3262call_function.84 :: int64
                                                        del $3262call_function.84
2102:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2103:             # temp64len, temp64,
2104:             # finother)
2105:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $3266load_global.85 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2106:                                                     temp64len, temp64,
2107:                                                     fin2)
                                                        $3278call_function.91 = call $3266load_global.85(finlength, fin1, temp64len, temp64, fin2, func=$3266load_global.85, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp64len, adaptive_predicates.py:2055), Var(temp64, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp64len
                                                        del $3266load_global.85
                                                        finlength = $3278call_function.91 :: int64
                                                        del $3278call_function.91
2108:             # finswap = finnow
2109:             # finnow = finother
2110:             # finother = finswap
2111:             swap(fin1, fin2)
                $3282load_global.92 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $3288call_function.95 = call $3282load_global.92(fin1, fin2, func=$3282load_global.92, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $3288call_function.95
                del $3282load_global.92
2112:
2113:     if (bdxtail != 0.0) or (bdytail != 0.0):
        jump 3292
      label 3292
        del bcttlen
        del bctt
        del bctlen
        del bct
        del aytbctt
        del aytbct
        del aytbclen
        del aytbc
        del axtbctt
        del axtbct
        del axtbclen
        del axtbc
        del $3066compare_op.2
        del $2380compare_op.2
        $const3294.1 = const(float, 0.0) :: float64
        $3296compare_op.2 = bdxtail != $const3294.1 :: bool
        del $const3294.1
        branch $3296compare_op.2, 3312, 3302
      label 3302
        del $3296compare_op.2
        $const3304.1 = const(float, 0.0) :: float64
        $3306compare_op.2 = bdytail != $const3304.1 :: bool
        del $const3304.1
        branch $3306compare_op.2, 3312, 4218
2114:         if (cdxtail != 0.0) or (cdytail != 0.0) or \
          label 3312
            del $3306compare_op.2
            del $3296compare_op.2
            $const3314.1 = const(float, 0.0) :: float64
            $3316compare_op.2 = cdxtail != $const3314.1 :: bool
            del $const3314.1
            branch $3316compare_op.2, 3352, 3322
          label 3322
            del $3316compare_op.2
            $const3324.1 = const(float, 0.0) :: float64
            $3326compare_op.2 = cdytail != $const3324.1 :: bool
            del $const3324.1
            branch $3326compare_op.2, 3352, 3332
2115:                 (adxtail != 0.0) or (adytail != 0.0):
                  label 3332
                    del $3326compare_op.2
                    $const3334.1 = const(float, 0.0) :: float64
                    $3336compare_op.2 = adxtail != $const3334.1 :: bool
                    del $const3334.1
                    branch $3336compare_op.2, 3352, 3342
                  label 3342
                    del $3336compare_op.2
                    $const3344.1 = const(float, 0.0) :: float64
                    $3346compare_op.2 = adytail != $const3344.1 :: bool
                    del $const3344.1
                    branch $3346compare_op.2, 3352, 3596
2116:             ti1, ti0 = Two_Product(cdxtail, ady, splitter)
              label 3352
                del $3346compare_op.2
                del $3336compare_op.2
                del $3326compare_op.2
                del $3316compare_op.2
                $3352load_global.0 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $3360call_function.4 = call $3352load_global.0(cdxtail, ady, splitter, func=$3352load_global.0, args=[Var(cdxtail, adaptive_predicates.py:1764), Var(ady, adaptive_predicates.py:1718), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $3352load_global.0
                $3362unpack_sequence.7 = exhaust_iter(value=$3360call_function.4, count=2) :: UniTuple(float64 x 2)
                del $3360call_function.4
                $3362unpack_sequence.5 = static_getitem(value=$3362unpack_sequence.7, index=0, index_var=None) :: float64
                $3362unpack_sequence.6 = static_getitem(value=$3362unpack_sequence.7, index=1, index_var=None) :: float64
                del $3362unpack_sequence.7
                ti1 = $3362unpack_sequence.5 :: float64
                del $3362unpack_sequence.5
                ti0 = $3362unpack_sequence.6 :: float64
                del $3362unpack_sequence.6
2117:             tj1, tj0 = Two_Product(cdx, adytail, splitter)
                $3368load_global.8 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $3376call_function.12 = call $3368load_global.8(cdx, adytail, splitter, func=$3368load_global.8, args=[Var(cdx, adaptive_predicates.py:1717), Var(adytail, adaptive_predicates.py:1761), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $3368load_global.8
                $3378unpack_sequence.15 = exhaust_iter(value=$3376call_function.12, count=2) :: UniTuple(float64 x 2)
                del $3376call_function.12
                $3378unpack_sequence.13 = static_getitem(value=$3378unpack_sequence.15, index=0, index_var=None) :: float64
                $3378unpack_sequence.14 = static_getitem(value=$3378unpack_sequence.15, index=1, index_var=None) :: float64
                del $3378unpack_sequence.15
                tj1 = $3378unpack_sequence.13 :: float64
                del $3378unpack_sequence.13
                tj0 = $3378unpack_sequence.14 :: float64
                del $3378unpack_sequence.14
2118:             u[3], u[2], u[1], u[0] = Two_Two_Sum(ti1, ti0, tj1, tj0)
                $3384load_global.16 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
                $3394call_function.21 = call $3384load_global.16(ti1, ti0, tj1, tj0, func=$3384load_global.16, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                del $3384load_global.16
                $3396unpack_sequence.26 = exhaust_iter(value=$3394call_function.21, count=4) :: UniTuple(float64 x 4)
                del $3394call_function.21
                $3396unpack_sequence.22 = static_getitem(value=$3396unpack_sequence.26, index=0, index_var=None) :: float64
                $3396unpack_sequence.23 = static_getitem(value=$3396unpack_sequence.26, index=1, index_var=None) :: float64
                $3396unpack_sequence.24 = static_getitem(value=$3396unpack_sequence.26, index=2, index_var=None) :: float64
                $3396unpack_sequence.25 = static_getitem(value=$3396unpack_sequence.26, index=3, index_var=None) :: float64
                del $3396unpack_sequence.26
                $const3400.28 = const(int, 3) :: Literal[int](3)
                u[3] = $3396unpack_sequence.22
                del $const3400.28
                del $3396unpack_sequence.22
                $const3406.30 = const(int, 2) :: Literal[int](2)
                u[2] = $3396unpack_sequence.23
                del $const3406.30
                del $3396unpack_sequence.23
                $const3412.32 = const(int, 1) :: Literal[int](1)
                u[1] = $3396unpack_sequence.24
                del $const3412.32
                del $3396unpack_sequence.24
                $const3418.34 = const(int, 0) :: Literal[int](0)
                u[0] = $3396unpack_sequence.25
                del $const3418.34
                del $3396unpack_sequence.25
2119:             negate = -cdy
                $3424unary_negative.36 = unary(fn=<built-in function neg>, value=cdy) :: float64
                negate = $3424unary_negative.36 :: float64
                del $3424unary_negative.36
2120:             ti1, ti0 = Two_Product(adxtail, negate, splitter)
                $3428load_global.37 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $3436call_function.41 = call $3428load_global.37(adxtail, negate, splitter, func=$3428load_global.37, args=[Var(adxtail, adaptive_predicates.py:1760), Var(negate, adaptive_predicates.py:1971), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $3428load_global.37
                $3438unpack_sequence.44 = exhaust_iter(value=$3436call_function.41, count=2) :: UniTuple(float64 x 2)
                del $3436call_function.41
                $3438unpack_sequence.42 = static_getitem(value=$3438unpack_sequence.44, index=0, index_var=None) :: float64
                $3438unpack_sequence.43 = static_getitem(value=$3438unpack_sequence.44, index=1, index_var=None) :: float64
                del $3438unpack_sequence.44
                ti1 = $3438unpack_sequence.42 :: float64
                del $3438unpack_sequence.42
                ti0 = $3438unpack_sequence.43 :: float64
                del $3438unpack_sequence.43
2121:             negate = -cdytail
                $3446unary_negative.46 = unary(fn=<built-in function neg>, value=cdytail) :: float64
                negate = $3446unary_negative.46 :: float64
                del $3446unary_negative.46
2122:             tj1, tj0 = Two_Product(adx, negate, splitter)
                $3450load_global.47 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $3458call_function.51 = call $3450load_global.47(adx, negate, splitter, func=$3450load_global.47, args=[Var(adx, adaptive_predicates.py:1715), Var(negate, adaptive_predicates.py:1971), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del negate
                del $3450load_global.47
                $3460unpack_sequence.54 = exhaust_iter(value=$3458call_function.51, count=2) :: UniTuple(float64 x 2)
                del $3458call_function.51
                $3460unpack_sequence.52 = static_getitem(value=$3460unpack_sequence.54, index=0, index_var=None) :: float64
                $3460unpack_sequence.53 = static_getitem(value=$3460unpack_sequence.54, index=1, index_var=None) :: float64
                del $3460unpack_sequence.54
                tj1 = $3460unpack_sequence.52 :: float64
                del $3460unpack_sequence.52
                tj0 = $3460unpack_sequence.53 :: float64
                del $3460unpack_sequence.53
2123:             v[3], v[2], v[1], v[0] = Two_Two_Sum(ti1, ti0, tj1, tj0)
                $3466load_global.55 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
                $3476call_function.60 = call $3466load_global.55(ti1, ti0, tj1, tj0, func=$3466load_global.55, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                del $3466load_global.55
                $3478unpack_sequence.65 = exhaust_iter(value=$3476call_function.60, count=4) :: UniTuple(float64 x 4)
                del $3476call_function.60
                $3478unpack_sequence.61 = static_getitem(value=$3478unpack_sequence.65, index=0, index_var=None) :: float64
                $3478unpack_sequence.62 = static_getitem(value=$3478unpack_sequence.65, index=1, index_var=None) :: float64
                $3478unpack_sequence.63 = static_getitem(value=$3478unpack_sequence.65, index=2, index_var=None) :: float64
                $3478unpack_sequence.64 = static_getitem(value=$3478unpack_sequence.65, index=3, index_var=None) :: float64
                del $3478unpack_sequence.65
                $const3482.67 = const(int, 3) :: Literal[int](3)
                v[3] = $3478unpack_sequence.61
                del $const3482.67
                del $3478unpack_sequence.61
                $const3488.69 = const(int, 2) :: Literal[int](2)
                v[2] = $3478unpack_sequence.62
                del $const3488.69
                del $3478unpack_sequence.62
                $const3494.71 = const(int, 1) :: Literal[int](1)
                v[1] = $3478unpack_sequence.63
                del $const3494.71
                del $3478unpack_sequence.63
                $const3500.73 = const(int, 0) :: Literal[int](0)
                v[0] = $3478unpack_sequence.64
                del $const3500.73
                del $3478unpack_sequence.64
2124:             catlen = fast_expansion_sum_zeroelim(4, u, 4, v, cat)
                $3504load_global.74 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
                $const3506.75 = const(int, 4) :: Literal[int](4)
                $const3510.77 = const(int, 4) :: Literal[int](4)
                $3516call_function.80 = call $3504load_global.74($const3506.75, u, $const3510.77, v, cat, func=$3504load_global.74, args=[Var($const3506.75, adaptive_predicates.py:2124), Var(u, adaptive_predicates.py:1715), Var($const3510.77, adaptive_predicates.py:2124), Var(v, adaptive_predicates.py:1715), Var(cat, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), Literal[int](4), array(float64, 1d, C), array(float64, 1d, C)) -> int64
                del $const3510.77
                del $const3506.75
                del $3504load_global.74
                catlen = $3516call_function.80 :: int64
                del $3516call_function.80
2125:
2126:             ti1, ti0 = Two_Product(cdxtail, adytail, splitter)
                $3520load_global.81 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $3528call_function.85 = call $3520load_global.81(cdxtail, adytail, splitter, func=$3520load_global.81, args=[Var(cdxtail, adaptive_predicates.py:1764), Var(adytail, adaptive_predicates.py:1761), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $3520load_global.81
                $3530unpack_sequence.88 = exhaust_iter(value=$3528call_function.85, count=2) :: UniTuple(float64 x 2)
                del $3528call_function.85
                $3530unpack_sequence.86 = static_getitem(value=$3530unpack_sequence.88, index=0, index_var=None) :: float64
                $3530unpack_sequence.87 = static_getitem(value=$3530unpack_sequence.88, index=1, index_var=None) :: float64
                del $3530unpack_sequence.88
                ti1 = $3530unpack_sequence.86 :: float64
                del $3530unpack_sequence.86
                ti0 = $3530unpack_sequence.87 :: float64
                del $3530unpack_sequence.87
2127:             tj1, tj0 = Two_Product(adxtail, cdytail, splitter)
                $3536load_global.89 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $3544call_function.93 = call $3536load_global.89(adxtail, cdytail, splitter, func=$3536load_global.89, args=[Var(adxtail, adaptive_predicates.py:1760), Var(cdytail, adaptive_predicates.py:1765), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $3536load_global.89
                $3546unpack_sequence.96 = exhaust_iter(value=$3544call_function.93, count=2) :: UniTuple(float64 x 2)
                del $3544call_function.93
                $3546unpack_sequence.94 = static_getitem(value=$3546unpack_sequence.96, index=0, index_var=None) :: float64
                $3546unpack_sequence.95 = static_getitem(value=$3546unpack_sequence.96, index=1, index_var=None) :: float64
                del $3546unpack_sequence.96
                tj1 = $3546unpack_sequence.94 :: float64
                del $3546unpack_sequence.94
                tj0 = $3546unpack_sequence.95 :: float64
                del $3546unpack_sequence.95
2128:             catt[3], catt[2], catt[1], catt[0] = Two_Two_Diff(ti1, ti0, tj1,
                $3552load_global.97 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
2129:                                                               tj0)
                                                                  $3562call_function.102 = call $3552load_global.97(ti1, ti0, tj1, tj0, func=$3552load_global.97, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                                  del tj1
                                                                  del tj0
                                                                  del ti1
                                                                  del ti0
                                                                  del $3552load_global.97
                                                                  $3564unpack_sequence.107 = exhaust_iter(value=$3562call_function.102, count=4) :: UniTuple(float64 x 4)
                                                                  del $3562call_function.102
                                                                  $3564unpack_sequence.103 = static_getitem(value=$3564unpack_sequence.107, index=0, index_var=None) :: float64
                                                                  $3564unpack_sequence.104 = static_getitem(value=$3564unpack_sequence.107, index=1, index_var=None) :: float64
                                                                  $3564unpack_sequence.105 = static_getitem(value=$3564unpack_sequence.107, index=2, index_var=None) :: float64
                                                                  $3564unpack_sequence.106 = static_getitem(value=$3564unpack_sequence.107, index=3, index_var=None) :: float64
                                                                  del $3564unpack_sequence.107
                                                                  $const3568.109 = const(int, 3) :: Literal[int](3)
                                                                  catt[3] = $3564unpack_sequence.103
                                                                  del $const3568.109
                                                                  del $3564unpack_sequence.103
                                                                  $const3574.111 = const(int, 2) :: Literal[int](2)
                                                                  catt[2] = $3564unpack_sequence.104
                                                                  del $const3574.111
                                                                  del $3564unpack_sequence.104
                                                                  $const3580.113 = const(int, 1) :: Literal[int](1)
                                                                  catt[1] = $3564unpack_sequence.105
                                                                  del $const3580.113
                                                                  del $3564unpack_sequence.105
                                                                  $const3586.115 = const(int, 0) :: Literal[int](0)
                                                                  catt[0] = $3564unpack_sequence.106
                                                                  del $const3586.115
                                                                  del $3564unpack_sequence.106
2130:             cattlen = 4
                $const3590.116 = const(int, 4) :: Literal[int](4)
                cattlen = $const3590.116 :: int64
                del $const3590.116
                jump 3620
2131:         else:
2132:             cat[0] = 0.0
              label 3596
                del $3346compare_op.2
                $const3596.0 = const(float, 0.0) :: float64
                $const3600.2 = const(int, 0) :: Literal[int](0)
                cat[0] = $const3596.0
                del $const3600.2
                del $const3596.0
2133:             catlen = 1
                $const3604.3 = const(int, 1) :: Literal[int](1)
                catlen = $const3604.3 :: int64
                del $const3604.3
2134:             catt[0] = 0.0
                $const3608.4 = const(float, 0.0) :: float64
                $const3612.6 = const(int, 0) :: Literal[int](0)
                catt[0] = $const3608.4
                del $const3612.6
                del $const3608.4
2135:             cattlen = 1
                $const3616.7 = const(int, 1) :: Literal[int](1)
                cattlen = $const3616.7 :: int64
                del $const3616.7
2136:
2137:         if bdxtail != 0.0:
            jump 3620
          label 3620
            $const3622.1 = const(float, 0.0) :: float64
            $3624compare_op.2 = bdxtail != $const3622.1 :: bool
            del $const3622.1
            branch $3624compare_op.2, 3630, 3988
2138:             temp16alen = scale_expansion_zeroelim(bxtcalen, bxtca, bdxtail,
              label 3630
                del $3624compare_op.2
                $3630load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2139:                                                   temp16a, splitter)
                                                      $3642call_function.6 = call $3630load_global.0(bxtcalen, bxtca, bdxtail, temp16a, splitter, func=$3630load_global.0, args=[Var(bxtcalen, adaptive_predicates.py:1861), Var(bxtca, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del bxtcalen
                                                      del bxtca
                                                      del $3630load_global.0
                                                      temp16alen = $3642call_function.6 :: int64
                                                      del $3642call_function.6
2140:             bxtcatlen = scale_expansion_zeroelim(catlen, cat, bdxtail, bxtcat,
                $3646load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2141:                                                  splitter)
                                                     $3658call_function.13 = call $3646load_global.7(catlen, cat, bdxtail, bxtcat, splitter, func=$3646load_global.7, args=[Var(catlen, adaptive_predicates.py:2124), Var(cat, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(bxtcat, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                     del $3646load_global.7
                                                     bxtcatlen = $3658call_function.13 :: int64
                                                     del $3658call_function.13
2142:             temp32alen = scale_expansion_zeroelim(bxtcatlen, bxtcat, 2.0 * bdx,
                $3662load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                $const3668.17 = const(float, 2.0) :: float64
                $3672binary_multiply.19 = $const3668.17 * bdx :: float64
                del $const3668.17
2143:                                                   temp32a, splitter)
                                                      $3678call_function.22 = call $3662load_global.14(bxtcatlen, bxtcat, $3672binary_multiply.19, temp32a, splitter, func=$3662load_global.14, args=[Var(bxtcatlen, adaptive_predicates.py:2141), Var(bxtcat, adaptive_predicates.py:1715), Var($3672binary_multiply.19, adaptive_predicates.py:2142), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $3672binary_multiply.19
                                                      del $3662load_global.14
                                                      temp32alen = $3678call_function.22 :: int64
                                                      del $3678call_function.22
2144:             temp48len = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $3682load_global.23 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2145:                                                     temp32alen, temp32a,
2146:                                                     temp48)
                                                        $3694call_function.29 = call $3682load_global.23(temp16alen, temp16a, temp32alen, temp32a, temp48, func=$3682load_global.23, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32alen
                                                        del temp16alen
                                                        del $3682load_global.23
                                                        temp48len = $3694call_function.29 :: int64
                                                        del $3694call_function.29
2147:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2148:             # temp48len, temp48,
2149:             # finother)
2150:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $3698load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2151:                                                     temp48len, temp48,
2152:                                                     fin2)
                                                        $3710call_function.36 = call $3698load_global.30(finlength, fin1, temp48len, temp48, fin2, func=$3698load_global.30, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp48len
                                                        del $3698load_global.30
                                                        finlength = $3710call_function.36 :: int64
                                                        del $3710call_function.36
2153:             # finswap = finnow
2154:             # finnow = finother
2155:             # finother = finswap
2156:             swap(fin1, fin2)
                $3714load_global.37 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $3720call_function.40 = call $3714load_global.37(fin1, fin2, func=$3714load_global.37, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $3720call_function.40
                del $3714load_global.37
2157:             if cdytail != 0.0:
                $const3726.42 = const(float, 0.0) :: float64
                $3728compare_op.43 = cdytail != $const3726.42 :: bool
                del $const3726.42
                branch $3728compare_op.43, 3734, 3792
2158:                 temp8len = scale_expansion_zeroelim(4, aa, bdxtail, temp8,
                  label 3734
                    del $3728compare_op.43
                    $3734load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                    $const3736.1 = const(int, 4) :: Literal[int](4)
2159:                                                     splitter)
                                                        $3746call_function.6 = call $3734load_global.0($const3736.1, aa, bdxtail, temp8, splitter, func=$3734load_global.0, args=[Var($const3736.1, adaptive_predicates.py:2158), Var(aa, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(temp8, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                        del $const3736.1
                                                        del $3734load_global.0
                                                        temp8len = $3746call_function.6 :: int64
                                                        del $3746call_function.6
2160:                 temp16alen = scale_expansion_zeroelim(temp8len, temp8, cdytail,
                    $3750load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2161:                                                       temp16a, splitter)
                                                          $3762call_function.13 = call $3750load_global.7(temp8len, temp8, cdytail, temp16a, splitter, func=$3750load_global.7, args=[Var(temp8len, adaptive_predicates.py:2012), Var(temp8, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                          del temp8len
                                                          del $3750load_global.7
                                                          temp16alen = $3762call_function.13 :: int64
                                                          del $3762call_function.13
2162:                 # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2163:                 # temp16alen, temp16a,
2164:                 # finother)
2165:                 finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                    $3766load_global.14 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2166:                                                         temp16alen, temp16a,
2167:                                                         fin2)
                                                            $3778call_function.20 = call $3766load_global.14(finlength, fin1, temp16alen, temp16a, fin2, func=$3766load_global.14, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                            del temp16alen
                                                            del $3766load_global.14
                                                            finlength = $3778call_function.20 :: int64
                                                            del $3778call_function.20
2168:                 # finswap = finnow
2169:                 # finnow = finother
2170:                 # finother = finswap
2171:                 swap(fin1, fin2)
                    $3782load_global.21 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                    $3788call_function.24 = call $3782load_global.21(fin1, fin2, func=$3782load_global.21, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                    del $3788call_function.24
                    del $3782load_global.21
2172:             if adytail != 0.0:
                jump 3792
              label 3792
                del $3728compare_op.43
                $const3794.1 = const(float, 0.0) :: float64
                $3796compare_op.2 = adytail != $const3794.1 :: bool
                del $const3794.1
                branch $3796compare_op.2, 3802, 3862
2173:                 temp8len = scale_expansion_zeroelim(4, cc, -bdxtail, temp8,
                  label 3802
                    del $3796compare_op.2
                    $3802load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                    $const3804.1 = const(int, 4) :: Literal[int](4)
                    $3810unary_negative.4 = unary(fn=<built-in function neg>, value=bdxtail) :: float64
2174:                                                     splitter)
                                                        $3816call_function.7 = call $3802load_global.0($const3804.1, cc, $3810unary_negative.4, temp8, splitter, func=$3802load_global.0, args=[Var($const3804.1, adaptive_predicates.py:2173), Var(cc, adaptive_predicates.py:1715), Var($3810unary_negative.4, adaptive_predicates.py:2173), Var(temp8, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                        del cc
                                                        del $const3804.1
                                                        del $3810unary_negative.4
                                                        del $3802load_global.0
                                                        temp8len = $3816call_function.7 :: int64
                                                        del $3816call_function.7
2175:                 temp16alen = scale_expansion_zeroelim(temp8len, temp8, adytail,
                    $3820load_global.8 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2176:                                                       temp16a, splitter)
                                                          $3832call_function.14 = call $3820load_global.8(temp8len, temp8, adytail, temp16a, splitter, func=$3820load_global.8, args=[Var(temp8len, adaptive_predicates.py:2012), Var(temp8, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                          del temp8len
                                                          del $3820load_global.8
                                                          temp16alen = $3832call_function.14 :: int64
                                                          del $3832call_function.14
2177:                 # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2178:                 # temp16alen, temp16a,
2179:                 # finother)
2180:                 finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                    $3836load_global.15 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2181:                                                         temp16alen, temp16a,
2182:                                                         fin2)
                                                            $3848call_function.21 = call $3836load_global.15(finlength, fin1, temp16alen, temp16a, fin2, func=$3836load_global.15, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                            del temp16alen
                                                            del $3836load_global.15
                                                            finlength = $3848call_function.21 :: int64
                                                            del $3848call_function.21
2183:                 # finswap = finnow
2184:                 # finnow = finother
2185:                 # finother = finswap
2186:                 swap(fin1, fin2)
                    $3852load_global.22 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                    $3858call_function.25 = call $3852load_global.22(fin1, fin2, func=$3852load_global.22, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                    del $3858call_function.25
                    del $3852load_global.22
2187:
2188:             temp32alen = scale_expansion_zeroelim(bxtcatlen, bxtcat, bdxtail,
                jump 3862
              label 3862
                del cc
                del $3796compare_op.2
                $3862load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2189:                                                   temp32a, splitter)
                                                      $3874call_function.6 = call $3862load_global.0(bxtcatlen, bxtcat, bdxtail, temp32a, splitter, func=$3862load_global.0, args=[Var(bxtcatlen, adaptive_predicates.py:2141), Var(bxtcat, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del bxtcatlen
                                                      del bxtcat
                                                      del $3862load_global.0
                                                      temp32alen = $3874call_function.6 :: int64
                                                      del $3874call_function.6
2190:             bxtcattlen = scale_expansion_zeroelim(cattlen, catt, bdxtail,
                $3878load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2191:                                                   bxtcatt, splitter)
                                                      $3890call_function.13 = call $3878load_global.7(cattlen, catt, bdxtail, bxtcatt, splitter, func=$3878load_global.7, args=[Var(cattlen, adaptive_predicates.py:2130), Var(catt, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(bxtcatt, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $3878load_global.7
                                                      bxtcattlen = $3890call_function.13 :: int64
                                                      del $3890call_function.13
2192:             temp16alen = scale_expansion_zeroelim(bxtcattlen, bxtcatt,
                $3894load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2193:                                                   2.0 * bdx, temp16a, splitter)
                                                      $const3900.17 = const(float, 2.0) :: float64
                                                      $3904binary_multiply.19 = $const3900.17 * bdx :: float64
                                                      del $const3900.17
                                                      $3910call_function.22 = call $3894load_global.14(bxtcattlen, bxtcatt, $3904binary_multiply.19, temp16a, splitter, func=$3894load_global.14, args=[Var(bxtcattlen, adaptive_predicates.py:2191), Var(bxtcatt, adaptive_predicates.py:1715), Var($3904binary_multiply.19, adaptive_predicates.py:2193), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $3904binary_multiply.19
                                                      del $3894load_global.14
                                                      temp16alen = $3910call_function.22 :: int64
                                                      del $3910call_function.22
2194:             temp16blen = scale_expansion_zeroelim(bxtcattlen, bxtcatt, bdxtail,
                $3914load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2195:                                                   temp16b, splitter)
                                                      $3926call_function.29 = call $3914load_global.23(bxtcattlen, bxtcatt, bdxtail, temp16b, splitter, func=$3914load_global.23, args=[Var(bxtcattlen, adaptive_predicates.py:2191), Var(bxtcatt, adaptive_predicates.py:1715), Var(bdxtail, adaptive_predicates.py:1762), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del bxtcattlen
                                                      del bxtcatt
                                                      del $3914load_global.23
                                                      temp16blen = $3926call_function.29 :: int64
                                                      del $3926call_function.29
2196:             temp32blen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $3930load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2197:                                                      temp16blen, temp16b,
2198:                                                      temp32b)
                                                         $3942call_function.36 = call $3930load_global.30(temp16alen, temp16a, temp16blen, temp16b, temp32b, func=$3930load_global.30, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32b, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                         del temp16blen
                                                         del temp16alen
                                                         del $3930load_global.30
                                                         temp32blen = $3942call_function.36 :: int64
                                                         del $3942call_function.36
2199:             temp64len = fast_expansion_sum_zeroelim(temp32alen, temp32a,
                $3946load_global.37 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2200:                                                     temp32blen, temp32b,
2201:                                                     temp64)
                                                        $3958call_function.43 = call $3946load_global.37(temp32alen, temp32a, temp32blen, temp32b, temp64, func=$3946load_global.37, args=[Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp32blen, adaptive_predicates.py:2052), Var(temp32b, adaptive_predicates.py:1715), Var(temp64, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32blen
                                                        del temp32alen
                                                        del $3946load_global.37
                                                        temp64len = $3958call_function.43 :: int64
                                                        del $3958call_function.43
2202:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2203:             # temp64len, temp64,
2204:             # finother)
2205:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $3962load_global.44 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2206:                                                     temp64len, temp64,
2207:                                                     fin2)
                                                        $3974call_function.50 = call $3962load_global.44(finlength, fin1, temp64len, temp64, fin2, func=$3962load_global.44, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp64len, adaptive_predicates.py:2055), Var(temp64, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp64len
                                                        del $3962load_global.44
                                                        finlength = $3974call_function.50 :: int64
                                                        del $3974call_function.50
2208:             # finswap = finnow
2209:             # finnow = finother
2210:             # finother = finswap
2211:             swap(fin1, fin2)
                $3978load_global.51 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $3984call_function.54 = call $3978load_global.51(fin1, fin2, func=$3978load_global.51, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $3984call_function.54
                del $3978load_global.51
2212:
2213:         if bdytail != 0.0:
            jump 3988
          label 3988
            del cc
            del bxtcatt
            del bxtcat
            del bxtcalen
            del bxtca
            del $3624compare_op.2
            $const3990.1 = const(float, 0.0) :: float64
            $3992compare_op.2 = bdytail != $const3990.1 :: bool
            del $const3990.1
            branch $3992compare_op.2, 3998, 4218
2214:             temp16alen = scale_expansion_zeroelim(bytcalen, bytca, bdytail,
              label 3998
                del $3992compare_op.2
                $3998load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2215:                                                   temp16a, splitter)
                                                      $4010call_function.6 = call $3998load_global.0(bytcalen, bytca, bdytail, temp16a, splitter, func=$3998load_global.0, args=[Var(bytcalen, adaptive_predicates.py:1887), Var(bytca, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del bytcalen
                                                      del bytca
                                                      del $3998load_global.0
                                                      temp16alen = $4010call_function.6 :: int64
                                                      del $4010call_function.6
2216:             bytcatlen = scale_expansion_zeroelim(catlen, cat, bdytail, bytcat,
                $4014load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2217:                                                  splitter)
                                                     $4026call_function.13 = call $4014load_global.7(catlen, cat, bdytail, bytcat, splitter, func=$4014load_global.7, args=[Var(catlen, adaptive_predicates.py:2124), Var(cat, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(bytcat, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                     del catlen
                                                     del cat
                                                     del $4014load_global.7
                                                     bytcatlen = $4026call_function.13 :: int64
                                                     del $4026call_function.13
2218:             temp32alen = scale_expansion_zeroelim(bytcatlen, bytcat, 2.0 * bdy,
                $4030load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                $const4036.17 = const(float, 2.0) :: float64
                $4040binary_multiply.19 = $const4036.17 * bdy :: float64
                del $const4036.17
2219:                                                   temp32a, splitter)
                                                      $4046call_function.22 = call $4030load_global.14(bytcatlen, bytcat, $4040binary_multiply.19, temp32a, splitter, func=$4030load_global.14, args=[Var(bytcatlen, adaptive_predicates.py:2217), Var(bytcat, adaptive_predicates.py:1715), Var($4040binary_multiply.19, adaptive_predicates.py:2218), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $4040binary_multiply.19
                                                      del $4030load_global.14
                                                      temp32alen = $4046call_function.22 :: int64
                                                      del $4046call_function.22
2220:             temp48len = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $4050load_global.23 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2221:                                                     temp32alen, temp32a,
2222:                                                     temp48)
                                                        $4062call_function.29 = call $4050load_global.23(temp16alen, temp16a, temp32alen, temp32a, temp48, func=$4050load_global.23, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del $4050load_global.23
                                                        temp48len = $4062call_function.29 :: int64
                                                        del $4062call_function.29
2223:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2224:             # temp48len, temp48,
2225:             # finother)
2226:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $4066load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2227:                                                     temp48len, temp48,
2228:                                                     fin2)
                                                        $4078call_function.36 = call $4066load_global.30(finlength, fin1, temp48len, temp48, fin2, func=$4066load_global.30, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp48len
                                                        del $4066load_global.30
                                                        finlength = $4078call_function.36 :: int64
                                                        del $4078call_function.36
2229:             # finswap = finnow
2230:             # finnow = finother
2231:             # finother = finswap
2232:             swap(fin1, fin2)
                $4082load_global.37 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $4088call_function.40 = call $4082load_global.37(fin1, fin2, func=$4082load_global.37, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $4088call_function.40
                del $4082load_global.37
2233:
2234:             temp32alen = scale_expansion_zeroelim(bytcatlen, bytcat, bdytail,
                $4092load_global.41 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2235:                                                   temp32a, splitter)
                                                      $4104call_function.47 = call $4092load_global.41(bytcatlen, bytcat, bdytail, temp32a, splitter, func=$4092load_global.41, args=[Var(bytcatlen, adaptive_predicates.py:2217), Var(bytcat, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del bytcatlen
                                                      del bytcat
                                                      del $4092load_global.41
                                                      temp32alen = $4104call_function.47 :: int64
                                                      del $4104call_function.47
2236:             bytcattlen = scale_expansion_zeroelim(cattlen, catt, bdytail,
                $4108load_global.48 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2237:                                                   bytcatt, splitter)
                                                      $4120call_function.54 = call $4108load_global.48(cattlen, catt, bdytail, bytcatt, splitter, func=$4108load_global.48, args=[Var(cattlen, adaptive_predicates.py:2130), Var(catt, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(bytcatt, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del cattlen
                                                      del catt
                                                      del $4108load_global.48
                                                      bytcattlen = $4120call_function.54 :: int64
                                                      del $4120call_function.54
2238:             temp16alen = scale_expansion_zeroelim(bytcattlen, bytcatt,
                $4124load_global.55 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2239:                                                   2.0 * bdy, temp16a, splitter)
                                                      $const4130.58 = const(float, 2.0) :: float64
                                                      $4134binary_multiply.60 = $const4130.58 * bdy :: float64
                                                      del $const4130.58
                                                      $4140call_function.63 = call $4124load_global.55(bytcattlen, bytcatt, $4134binary_multiply.60, temp16a, splitter, func=$4124load_global.55, args=[Var(bytcattlen, adaptive_predicates.py:2237), Var(bytcatt, adaptive_predicates.py:1715), Var($4134binary_multiply.60, adaptive_predicates.py:2239), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $4134binary_multiply.60
                                                      del $4124load_global.55
                                                      temp16alen = $4140call_function.63 :: int64
                                                      del $4140call_function.63
2240:             temp16blen = scale_expansion_zeroelim(bytcattlen, bytcatt, bdytail,
                $4144load_global.64 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2241:                                                   temp16b, splitter)
                                                      $4156call_function.70 = call $4144load_global.64(bytcattlen, bytcatt, bdytail, temp16b, splitter, func=$4144load_global.64, args=[Var(bytcattlen, adaptive_predicates.py:2237), Var(bytcatt, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del bytcattlen
                                                      del bytcatt
                                                      del $4144load_global.64
                                                      temp16blen = $4156call_function.70 :: int64
                                                      del $4156call_function.70
2242:             temp32blen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $4160load_global.71 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2243:                                                      temp16blen, temp16b,
2244:                                                      temp32b)
                                                         $4172call_function.77 = call $4160load_global.71(temp16alen, temp16a, temp16blen, temp16b, temp32b, func=$4160load_global.71, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32b, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                         del temp16blen
                                                         del temp16alen
                                                         del $4160load_global.71
                                                         temp32blen = $4172call_function.77 :: int64
                                                         del $4172call_function.77
2245:             temp64len = fast_expansion_sum_zeroelim(temp32alen, temp32a,
                $4176load_global.78 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2246:                                                     temp32blen, temp32b,
2247:                                                     temp64)
                                                        $4188call_function.84 = call $4176load_global.78(temp32alen, temp32a, temp32blen, temp32b, temp64, func=$4176load_global.78, args=[Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp32blen, adaptive_predicates.py:2052), Var(temp32b, adaptive_predicates.py:1715), Var(temp64, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32blen
                                                        del temp32alen
                                                        del $4176load_global.78
                                                        temp64len = $4188call_function.84 :: int64
                                                        del $4188call_function.84
2248:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2249:             # temp64len, temp64,
2250:             # finother)
2251:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $4192load_global.85 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2252:                                                     temp64len, temp64,
2253:                                                     fin2)
                                                        $4204call_function.91 = call $4192load_global.85(finlength, fin1, temp64len, temp64, fin2, func=$4192load_global.85, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp64len, adaptive_predicates.py:2055), Var(temp64, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp64len
                                                        del $4192load_global.85
                                                        finlength = $4204call_function.91 :: int64
                                                        del $4204call_function.91
2254:             # finswap = finnow
2255:             # finnow = finother
2256:             # finother = finswap
2257:             swap(fin1, fin2)
                $4208load_global.92 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $4214call_function.95 = call $4208load_global.92(fin1, fin2, func=$4208load_global.92, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $4214call_function.95
                del $4208load_global.92
2258:
2259:     if (cdxtail != 0.0) or (cdytail != 0.0):
        jump 4218
      label 4218
        del cc
        del cattlen
        del catt
        del catlen
        del cat
        del bytcatt
        del bytcat
        del bytcalen
        del bytca
        del bxtcatt
        del bxtcat
        del bxtcalen
        del bxtca
        del $3992compare_op.2
        del $3306compare_op.2
        $const4220.1 = const(float, 0.0) :: float64
        $4222compare_op.2 = cdxtail != $const4220.1 :: bool
        del $const4220.1
        branch $4222compare_op.2, 4238, 4228
      label 4228
        del $4222compare_op.2
        $const4230.1 = const(float, 0.0) :: float64
        $4232compare_op.2 = cdytail != $const4230.1 :: bool
        del $const4230.1
        branch $4232compare_op.2, 4238, 5144
2260:         if (adxtail != 0.0) or (adytail != 0.0) or \
          label 4238
            del $4232compare_op.2
            del $4222compare_op.2
            $const4240.1 = const(float, 0.0) :: float64
            $4242compare_op.2 = adxtail != $const4240.1 :: bool
            del $const4240.1
            branch $4242compare_op.2, 4278, 4248
          label 4248
            del $4242compare_op.2
            $const4250.1 = const(float, 0.0) :: float64
            $4252compare_op.2 = adytail != $const4250.1 :: bool
            del $const4250.1
            branch $4252compare_op.2, 4278, 4258
2261:                 (bdxtail != 0.0) or (bdytail != 0.0):
                  label 4258
                    del $4252compare_op.2
                    $const4260.1 = const(float, 0.0) :: float64
                    $4262compare_op.2 = bdxtail != $const4260.1 :: bool
                    del $const4260.1
                    branch $4262compare_op.2, 4278, 4268
                  label 4268
                    del $4262compare_op.2
                    $const4270.1 = const(float, 0.0) :: float64
                    $4272compare_op.2 = bdytail != $const4270.1 :: bool
                    del $const4270.1
                    branch $4272compare_op.2, 4278, 4522
2262:             ti1, ti0 = Two_Product(adxtail, bdy, splitter)
              label 4278
                del $4272compare_op.2
                del $4262compare_op.2
                del $4252compare_op.2
                del $4242compare_op.2
                $4278load_global.0 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $4286call_function.4 = call $4278load_global.0(adxtail, bdy, splitter, func=$4278load_global.0, args=[Var(adxtail, adaptive_predicates.py:1760), Var(bdy, adaptive_predicates.py:1719), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del bdy
                del $4278load_global.0
                $4288unpack_sequence.7 = exhaust_iter(value=$4286call_function.4, count=2) :: UniTuple(float64 x 2)
                del $4286call_function.4
                $4288unpack_sequence.5 = static_getitem(value=$4288unpack_sequence.7, index=0, index_var=None) :: float64
                $4288unpack_sequence.6 = static_getitem(value=$4288unpack_sequence.7, index=1, index_var=None) :: float64
                del $4288unpack_sequence.7
                ti1 = $4288unpack_sequence.5 :: float64
                del $4288unpack_sequence.5
                ti0 = $4288unpack_sequence.6 :: float64
                del $4288unpack_sequence.6
2263:             tj1, tj0 = Two_Product(adx, bdytail, splitter)
                $4294load_global.8 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $4302call_function.12 = call $4294load_global.8(adx, bdytail, splitter, func=$4294load_global.8, args=[Var(adx, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del adx
                del $4294load_global.8
                $4304unpack_sequence.15 = exhaust_iter(value=$4302call_function.12, count=2) :: UniTuple(float64 x 2)
                del $4302call_function.12
                $4304unpack_sequence.13 = static_getitem(value=$4304unpack_sequence.15, index=0, index_var=None) :: float64
                $4304unpack_sequence.14 = static_getitem(value=$4304unpack_sequence.15, index=1, index_var=None) :: float64
                del $4304unpack_sequence.15
                tj1 = $4304unpack_sequence.13 :: float64
                del $4304unpack_sequence.13
                tj0 = $4304unpack_sequence.14 :: float64
                del $4304unpack_sequence.14
2264:             u[3], u[2], u[1], u[0] = Two_Two_Sum(ti1, ti0, tj1, tj0)
                $4310load_global.16 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
                $4320call_function.21 = call $4310load_global.16(ti1, ti0, tj1, tj0, func=$4310load_global.16, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                del $4310load_global.16
                $4322unpack_sequence.26 = exhaust_iter(value=$4320call_function.21, count=4) :: UniTuple(float64 x 4)
                del $4320call_function.21
                $4322unpack_sequence.22 = static_getitem(value=$4322unpack_sequence.26, index=0, index_var=None) :: float64
                $4322unpack_sequence.23 = static_getitem(value=$4322unpack_sequence.26, index=1, index_var=None) :: float64
                $4322unpack_sequence.24 = static_getitem(value=$4322unpack_sequence.26, index=2, index_var=None) :: float64
                $4322unpack_sequence.25 = static_getitem(value=$4322unpack_sequence.26, index=3, index_var=None) :: float64
                del $4322unpack_sequence.26
                $const4326.28 = const(int, 3) :: Literal[int](3)
                u[3] = $4322unpack_sequence.22
                del $const4326.28
                del $4322unpack_sequence.22
                $const4332.30 = const(int, 2) :: Literal[int](2)
                u[2] = $4322unpack_sequence.23
                del $const4332.30
                del $4322unpack_sequence.23
                $const4338.32 = const(int, 1) :: Literal[int](1)
                u[1] = $4322unpack_sequence.24
                del $const4338.32
                del $4322unpack_sequence.24
                $const4344.34 = const(int, 0) :: Literal[int](0)
                u[0] = $4322unpack_sequence.25
                del $const4344.34
                del $4322unpack_sequence.25
2265:             negate = -ady
                $4350unary_negative.36 = unary(fn=<built-in function neg>, value=ady) :: float64
                del ady
                negate = $4350unary_negative.36 :: float64
                del $4350unary_negative.36
2266:             ti1, ti0 = Two_Product(bdxtail, negate, splitter)
                $4354load_global.37 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $4362call_function.41 = call $4354load_global.37(bdxtail, negate, splitter, func=$4354load_global.37, args=[Var(bdxtail, adaptive_predicates.py:1762), Var(negate, adaptive_predicates.py:1971), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del $4354load_global.37
                $4364unpack_sequence.44 = exhaust_iter(value=$4362call_function.41, count=2) :: UniTuple(float64 x 2)
                del $4362call_function.41
                $4364unpack_sequence.42 = static_getitem(value=$4364unpack_sequence.44, index=0, index_var=None) :: float64
                $4364unpack_sequence.43 = static_getitem(value=$4364unpack_sequence.44, index=1, index_var=None) :: float64
                del $4364unpack_sequence.44
                ti1 = $4364unpack_sequence.42 :: float64
                del $4364unpack_sequence.42
                ti0 = $4364unpack_sequence.43 :: float64
                del $4364unpack_sequence.43
2267:             negate = -adytail
                $4372unary_negative.46 = unary(fn=<built-in function neg>, value=adytail) :: float64
                negate = $4372unary_negative.46 :: float64
                del $4372unary_negative.46
2268:             tj1, tj0 = Two_Product(bdx, negate, splitter)
                $4376load_global.47 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $4384call_function.51 = call $4376load_global.47(bdx, negate, splitter, func=$4376load_global.47, args=[Var(bdx, adaptive_predicates.py:1716), Var(negate, adaptive_predicates.py:1971), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del negate
                del bdx
                del $4376load_global.47
                $4386unpack_sequence.54 = exhaust_iter(value=$4384call_function.51, count=2) :: UniTuple(float64 x 2)
                del $4384call_function.51
                $4386unpack_sequence.52 = static_getitem(value=$4386unpack_sequence.54, index=0, index_var=None) :: float64
                $4386unpack_sequence.53 = static_getitem(value=$4386unpack_sequence.54, index=1, index_var=None) :: float64
                del $4386unpack_sequence.54
                tj1 = $4386unpack_sequence.52 :: float64
                del $4386unpack_sequence.52
                tj0 = $4386unpack_sequence.53 :: float64
                del $4386unpack_sequence.53
2269:             v[3], v[2], v[1], v[0] = Two_Two_Sum(ti1, ti0, tj1, tj0)
                $4392load_global.55 = global(Two_Two_Sum: CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>)) :: type(CPUDispatcher(<function Two_Two_Sum at 0x7f51d4cacef0>))
                $4402call_function.60 = call $4392load_global.55(ti1, ti0, tj1, tj0, func=$4392load_global.55, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                del $4392load_global.55
                $4404unpack_sequence.65 = exhaust_iter(value=$4402call_function.60, count=4) :: UniTuple(float64 x 4)
                del $4402call_function.60
                $4404unpack_sequence.61 = static_getitem(value=$4404unpack_sequence.65, index=0, index_var=None) :: float64
                $4404unpack_sequence.62 = static_getitem(value=$4404unpack_sequence.65, index=1, index_var=None) :: float64
                $4404unpack_sequence.63 = static_getitem(value=$4404unpack_sequence.65, index=2, index_var=None) :: float64
                $4404unpack_sequence.64 = static_getitem(value=$4404unpack_sequence.65, index=3, index_var=None) :: float64
                del $4404unpack_sequence.65
                $const4408.67 = const(int, 3) :: Literal[int](3)
                v[3] = $4404unpack_sequence.61
                del $const4408.67
                del $4404unpack_sequence.61
                $const4414.69 = const(int, 2) :: Literal[int](2)
                v[2] = $4404unpack_sequence.62
                del $const4414.69
                del $4404unpack_sequence.62
                $const4420.71 = const(int, 1) :: Literal[int](1)
                v[1] = $4404unpack_sequence.63
                del $const4420.71
                del $4404unpack_sequence.63
                $const4426.73 = const(int, 0) :: Literal[int](0)
                v[0] = $4404unpack_sequence.64
                del $const4426.73
                del $4404unpack_sequence.64
2270:             abtlen = fast_expansion_sum_zeroelim(4, u, 4, v, abt)
                $4430load_global.74 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
                $const4432.75 = const(int, 4) :: Literal[int](4)
                $const4436.77 = const(int, 4) :: Literal[int](4)
                $4442call_function.80 = call $4430load_global.74($const4432.75, u, $const4436.77, v, abt, func=$4430load_global.74, args=[Var($const4432.75, adaptive_predicates.py:2270), Var(u, adaptive_predicates.py:1715), Var($const4436.77, adaptive_predicates.py:2270), Var(v, adaptive_predicates.py:1715), Var(abt, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), Literal[int](4), array(float64, 1d, C), array(float64, 1d, C)) -> int64
                del v
                del u
                del $const4436.77
                del $const4432.75
                del $4430load_global.74
                abtlen = $4442call_function.80 :: int64
                del $4442call_function.80
2271:
2272:             ti1, ti0 = Two_Product(adxtail, bdytail, splitter)
                $4446load_global.81 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $4454call_function.85 = call $4446load_global.81(adxtail, bdytail, splitter, func=$4446load_global.81, args=[Var(adxtail, adaptive_predicates.py:1760), Var(bdytail, adaptive_predicates.py:1763), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del adxtail
                del $4446load_global.81
                $4456unpack_sequence.88 = exhaust_iter(value=$4454call_function.85, count=2) :: UniTuple(float64 x 2)
                del $4454call_function.85
                $4456unpack_sequence.86 = static_getitem(value=$4456unpack_sequence.88, index=0, index_var=None) :: float64
                $4456unpack_sequence.87 = static_getitem(value=$4456unpack_sequence.88, index=1, index_var=None) :: float64
                del $4456unpack_sequence.88
                ti1 = $4456unpack_sequence.86 :: float64
                del $4456unpack_sequence.86
                ti0 = $4456unpack_sequence.87 :: float64
                del $4456unpack_sequence.87
2273:             tj1, tj0 = Two_Product(bdxtail, adytail, splitter)
                $4462load_global.89 = global(Two_Product: CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>)) :: type(CPUDispatcher(<function Two_Product at 0x7f51d4cb2b00>))
                $4470call_function.93 = call $4462load_global.89(bdxtail, adytail, splitter, func=$4462load_global.89, args=[Var(bdxtail, adaptive_predicates.py:1762), Var(adytail, adaptive_predicates.py:1761), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (float64, float64, float64) -> UniTuple(float64 x 2)
                del bdxtail
                del $4462load_global.89
                $4472unpack_sequence.96 = exhaust_iter(value=$4470call_function.93, count=2) :: UniTuple(float64 x 2)
                del $4470call_function.93
                $4472unpack_sequence.94 = static_getitem(value=$4472unpack_sequence.96, index=0, index_var=None) :: float64
                $4472unpack_sequence.95 = static_getitem(value=$4472unpack_sequence.96, index=1, index_var=None) :: float64
                del $4472unpack_sequence.96
                tj1 = $4472unpack_sequence.94 :: float64
                del $4472unpack_sequence.94
                tj0 = $4472unpack_sequence.95 :: float64
                del $4472unpack_sequence.95
2274:             abtt[3], abtt[2], abtt[1], abtt[0] = Two_Two_Diff(ti1, ti0, tj1,
                $4478load_global.97 = global(Two_Two_Diff: CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>)) :: type(CPUDispatcher(<function Two_Two_Diff at 0x7f51d4cc8200>))
2275:                                                               tj0)
                                                                  $4488call_function.102 = call $4478load_global.97(ti1, ti0, tj1, tj0, func=$4478load_global.97, args=[Var(ti1, adaptive_predicates.py:1968), Var(ti0, adaptive_predicates.py:1968), Var(tj1, adaptive_predicates.py:1969), Var(tj0, adaptive_predicates.py:1969)], kws=(), vararg=None) :: (float64, float64, float64, float64) -> UniTuple(float64 x 4)
                                                                  del tj1
                                                                  del tj0
                                                                  del ti1
                                                                  del ti0
                                                                  del $4478load_global.97
                                                                  $4490unpack_sequence.107 = exhaust_iter(value=$4488call_function.102, count=4) :: UniTuple(float64 x 4)
                                                                  del $4488call_function.102
                                                                  $4490unpack_sequence.103 = static_getitem(value=$4490unpack_sequence.107, index=0, index_var=None) :: float64
                                                                  $4490unpack_sequence.104 = static_getitem(value=$4490unpack_sequence.107, index=1, index_var=None) :: float64
                                                                  $4490unpack_sequence.105 = static_getitem(value=$4490unpack_sequence.107, index=2, index_var=None) :: float64
                                                                  $4490unpack_sequence.106 = static_getitem(value=$4490unpack_sequence.107, index=3, index_var=None) :: float64
                                                                  del $4490unpack_sequence.107
                                                                  $const4494.109 = const(int, 3) :: Literal[int](3)
                                                                  abtt[3] = $4490unpack_sequence.103
                                                                  del $const4494.109
                                                                  del $4490unpack_sequence.103
                                                                  $const4500.111 = const(int, 2) :: Literal[int](2)
                                                                  abtt[2] = $4490unpack_sequence.104
                                                                  del $const4500.111
                                                                  del $4490unpack_sequence.104
                                                                  $const4506.113 = const(int, 1) :: Literal[int](1)
                                                                  abtt[1] = $4490unpack_sequence.105
                                                                  del $const4506.113
                                                                  del $4490unpack_sequence.105
                                                                  $const4512.115 = const(int, 0) :: Literal[int](0)
                                                                  abtt[0] = $4490unpack_sequence.106
                                                                  del $const4512.115
                                                                  del $4490unpack_sequence.106
2276:             abttlen = 4
                $const4516.116 = const(int, 4) :: Literal[int](4)
                abttlen = $const4516.116 :: int64
                del $const4516.116
                jump 4546
2277:         else:
2278:             abt[0] = 0.0
              label 4522
                del v
                del u
                del bdy
                del bdxtail
                del bdx
                del ady
                del adxtail
                del adx
                del $4272compare_op.2
                $const4522.0 = const(float, 0.0) :: float64
                $const4526.2 = const(int, 0) :: Literal[int](0)
                abt[0] = $const4522.0
                del $const4526.2
                del $const4522.0
2279:             abtlen = 1
                $const4530.3 = const(int, 1) :: Literal[int](1)
                abtlen = $const4530.3 :: int64
                del $const4530.3
2280:             abtt[0] = 0.0
                $const4534.4 = const(float, 0.0) :: float64
                $const4538.6 = const(int, 0) :: Literal[int](0)
                abtt[0] = $const4534.4
                del $const4538.6
                del $const4534.4
2281:             abttlen = 1
                $const4542.7 = const(int, 1) :: Literal[int](1)
                abttlen = $const4542.7 :: int64
                del $const4542.7
2282:
2283:         if cdxtail != 0.0:
            jump 4546
          label 4546
            $const4548.1 = const(float, 0.0) :: float64
            $4550compare_op.2 = cdxtail != $const4548.1 :: bool
            del $const4548.1
            branch $4550compare_op.2, 4556, 4914
2284:             temp16alen = scale_expansion_zeroelim(cxtablen, cxtab, cdxtail,
              label 4556
                del $4550compare_op.2
                $4556load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2285:                                                   temp16a, splitter)
                                                      $4568call_function.6 = call $4556load_global.0(cxtablen, cxtab, cdxtail, temp16a, splitter, func=$4556load_global.0, args=[Var(cxtablen, adaptive_predicates.py:1913), Var(cxtab, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del cxtablen
                                                      del cxtab
                                                      del $4556load_global.0
                                                      temp16alen = $4568call_function.6 :: int64
                                                      del $4568call_function.6
2286:             cxtabtlen = scale_expansion_zeroelim(abtlen, abt, cdxtail, cxtabt,
                $4572load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2287:                                                  splitter)
                                                     $4584call_function.13 = call $4572load_global.7(abtlen, abt, cdxtail, cxtabt, splitter, func=$4572load_global.7, args=[Var(abtlen, adaptive_predicates.py:2270), Var(abt, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(cxtabt, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                     del $4572load_global.7
                                                     cxtabtlen = $4584call_function.13 :: int64
                                                     del $4584call_function.13
2288:             temp32alen = scale_expansion_zeroelim(cxtabtlen, cxtabt, 2.0 * cdx,
                $4588load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                $const4594.17 = const(float, 2.0) :: float64
                $4598binary_multiply.19 = $const4594.17 * cdx :: float64
                del $const4594.17
2289:                                                   temp32a, splitter)
                                                      $4604call_function.22 = call $4588load_global.14(cxtabtlen, cxtabt, $4598binary_multiply.19, temp32a, splitter, func=$4588load_global.14, args=[Var(cxtabtlen, adaptive_predicates.py:2287), Var(cxtabt, adaptive_predicates.py:1715), Var($4598binary_multiply.19, adaptive_predicates.py:2288), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $4598binary_multiply.19
                                                      del $4588load_global.14
                                                      temp32alen = $4604call_function.22 :: int64
                                                      del $4604call_function.22
2290:             temp48len = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $4608load_global.23 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2291:                                                     temp32alen, temp32a,
2292:                                                     temp48)
                                                        $4620call_function.29 = call $4608load_global.23(temp16alen, temp16a, temp32alen, temp32a, temp48, func=$4608load_global.23, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32alen
                                                        del temp16alen
                                                        del $4608load_global.23
                                                        temp48len = $4620call_function.29 :: int64
                                                        del $4620call_function.29
2293:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2294:             # temp48len, temp48,
2295:             # finother)
2296:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $4624load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2297:                                                     temp48len, temp48,
2298:                                                     fin2)
                                                        $4636call_function.36 = call $4624load_global.30(finlength, fin1, temp48len, temp48, fin2, func=$4624load_global.30, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp48len
                                                        del $4624load_global.30
                                                        finlength = $4636call_function.36 :: int64
                                                        del $4636call_function.36
2299:             # finswap = finnow
2300:             # finnow = finother
2301:             # finother = finswap
2302:             swap(fin1, fin2)
                $4640load_global.37 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $4646call_function.40 = call $4640load_global.37(fin1, fin2, func=$4640load_global.37, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $4646call_function.40
                del $4640load_global.37
2303:
2304:             if adytail != 0.0:
                $const4652.42 = const(float, 0.0) :: float64
                $4654compare_op.43 = adytail != $const4652.42 :: bool
                del $const4652.42
                branch $4654compare_op.43, 4660, 4718
2305:                 temp8len = scale_expansion_zeroelim(4, bb, cdxtail, temp8,
                  label 4660
                    del $4654compare_op.43
                    $4660load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                    $const4662.1 = const(int, 4) :: Literal[int](4)
2306:                                                     splitter)
                                                        $4672call_function.6 = call $4660load_global.0($const4662.1, bb, cdxtail, temp8, splitter, func=$4660load_global.0, args=[Var($const4662.1, adaptive_predicates.py:2305), Var(bb, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(temp8, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                        del bb
                                                        del $const4662.1
                                                        del $4660load_global.0
                                                        temp8len = $4672call_function.6 :: int64
                                                        del $4672call_function.6
2307:                 temp16alen = scale_expansion_zeroelim(temp8len, temp8, adytail,
                    $4676load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2308:                                                       temp16a, splitter)
                                                          $4688call_function.13 = call $4676load_global.7(temp8len, temp8, adytail, temp16a, splitter, func=$4676load_global.7, args=[Var(temp8len, adaptive_predicates.py:2012), Var(temp8, adaptive_predicates.py:1715), Var(adytail, adaptive_predicates.py:1761), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                          del temp8len
                                                          del adytail
                                                          del $4676load_global.7
                                                          temp16alen = $4688call_function.13 :: int64
                                                          del $4688call_function.13
2309:                 # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2310:                 # temp16alen, temp16a,
2311:                 # finother)
2312:                 finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                    $4692load_global.14 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2313:                                                         temp16alen, temp16a,
2314:                                                         fin2)
                                                            $4704call_function.20 = call $4692load_global.14(finlength, fin1, temp16alen, temp16a, fin2, func=$4692load_global.14, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                            del temp16alen
                                                            del $4692load_global.14
                                                            finlength = $4704call_function.20 :: int64
                                                            del $4704call_function.20
2315:                 # finswap = finnow
2316:                 # finnow = finother
2317:                 # finother = finswap
2318:                 swap(fin1, fin2)
                    $4708load_global.21 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                    $4714call_function.24 = call $4708load_global.21(fin1, fin2, func=$4708load_global.21, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                    del $4714call_function.24
                    del $4708load_global.21
2319:
2320:             if bdytail != 0.0:
                jump 4718
              label 4718
                del bb
                del adytail
                del $4654compare_op.43
                $const4720.1 = const(float, 0.0) :: float64
                $4722compare_op.2 = bdytail != $const4720.1 :: bool
                del $const4720.1
                branch $4722compare_op.2, 4728, 4788
2321:                 temp8len = scale_expansion_zeroelim(4, aa, -cdxtail, temp8,
                  label 4728
                    del $4722compare_op.2
                    $4728load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                    $const4730.1 = const(int, 4) :: Literal[int](4)
                    $4736unary_negative.4 = unary(fn=<built-in function neg>, value=cdxtail) :: float64
2322:                                                     splitter)
                                                        $4742call_function.7 = call $4728load_global.0($const4730.1, aa, $4736unary_negative.4, temp8, splitter, func=$4728load_global.0, args=[Var($const4730.1, adaptive_predicates.py:2321), Var(aa, adaptive_predicates.py:1715), Var($4736unary_negative.4, adaptive_predicates.py:2321), Var(temp8, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (Literal[int](4), array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                        del aa
                                                        del $const4730.1
                                                        del $4736unary_negative.4
                                                        del $4728load_global.0
                                                        temp8len = $4742call_function.7 :: int64
                                                        del $4742call_function.7
2323:                 temp16alen = scale_expansion_zeroelim(temp8len, temp8, bdytail,
                    $4746load_global.8 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2324:                                                       temp16a, splitter)
                                                          $4758call_function.14 = call $4746load_global.8(temp8len, temp8, bdytail, temp16a, splitter, func=$4746load_global.8, args=[Var(temp8len, adaptive_predicates.py:2012), Var(temp8, adaptive_predicates.py:1715), Var(bdytail, adaptive_predicates.py:1763), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                          del temp8len
                                                          del temp8
                                                          del bdytail
                                                          del $4746load_global.8
                                                          temp16alen = $4758call_function.14 :: int64
                                                          del $4758call_function.14
2325:                 # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2326:                 # temp16alen, temp16a,
2327:                 # finother)
2328:                 finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                    $4762load_global.15 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2329:                                                         temp16alen, temp16a,
2330:                                                         fin2)
                                                            $4774call_function.21 = call $4762load_global.15(finlength, fin1, temp16alen, temp16a, fin2, func=$4762load_global.15, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                            del temp16alen
                                                            del $4762load_global.15
                                                            finlength = $4774call_function.21 :: int64
                                                            del $4774call_function.21
2331:                 # finswap = finnow
2332:                 # finnow = finother
2333:                 # finother = finswap
2334:                 swap(fin1, fin2)
                    $4778load_global.22 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                    $4784call_function.25 = call $4778load_global.22(fin1, fin2, func=$4778load_global.22, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                    del $4784call_function.25
                    del $4778load_global.22
2335:
2336:             temp32alen = scale_expansion_zeroelim(cxtabtlen, cxtabt, cdxtail,
                jump 4788
              label 4788
                del temp8
                del bdytail
                del aa
                del $4722compare_op.2
                $4788load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2337:                                                   temp32a, splitter)
                                                      $4800call_function.6 = call $4788load_global.0(cxtabtlen, cxtabt, cdxtail, temp32a, splitter, func=$4788load_global.0, args=[Var(cxtabtlen, adaptive_predicates.py:2287), Var(cxtabt, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del cxtabtlen
                                                      del cxtabt
                                                      del $4788load_global.0
                                                      temp32alen = $4800call_function.6 :: int64
                                                      del $4800call_function.6
2338:             cxtabttlen = scale_expansion_zeroelim(abttlen, abtt, cdxtail,
                $4804load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2339:                                                   cxtabtt, splitter)
                                                      $4816call_function.13 = call $4804load_global.7(abttlen, abtt, cdxtail, cxtabtt, splitter, func=$4804load_global.7, args=[Var(abttlen, adaptive_predicates.py:2276), Var(abtt, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(cxtabtt, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $4804load_global.7
                                                      cxtabttlen = $4816call_function.13 :: int64
                                                      del $4816call_function.13
2340:             temp16alen = scale_expansion_zeroelim(cxtabttlen, cxtabtt,
                $4820load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2341:                                                   2.0 * cdx, temp16a, splitter)
                                                      $const4826.17 = const(float, 2.0) :: float64
                                                      $4830binary_multiply.19 = $const4826.17 * cdx :: float64
                                                      del cdx
                                                      del $const4826.17
                                                      $4836call_function.22 = call $4820load_global.14(cxtabttlen, cxtabtt, $4830binary_multiply.19, temp16a, splitter, func=$4820load_global.14, args=[Var(cxtabttlen, adaptive_predicates.py:2339), Var(cxtabtt, adaptive_predicates.py:1715), Var($4830binary_multiply.19, adaptive_predicates.py:2341), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $4830binary_multiply.19
                                                      del $4820load_global.14
                                                      temp16alen = $4836call_function.22 :: int64
                                                      del $4836call_function.22
2342:             temp16blen = scale_expansion_zeroelim(cxtabttlen, cxtabtt, cdxtail,
                $4840load_global.23 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2343:                                                   temp16b, splitter)
                                                      $4852call_function.29 = call $4840load_global.23(cxtabttlen, cxtabtt, cdxtail, temp16b, splitter, func=$4840load_global.23, args=[Var(cxtabttlen, adaptive_predicates.py:2339), Var(cxtabtt, adaptive_predicates.py:1715), Var(cdxtail, adaptive_predicates.py:1764), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del cxtabttlen
                                                      del cxtabtt
                                                      del cdxtail
                                                      del $4840load_global.23
                                                      temp16blen = $4852call_function.29 :: int64
                                                      del $4852call_function.29
2344:             temp32blen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $4856load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2345:                                                      temp16blen, temp16b,
2346:                                                      temp32b)
                                                         $4868call_function.36 = call $4856load_global.30(temp16alen, temp16a, temp16blen, temp16b, temp32b, func=$4856load_global.30, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32b, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                         del temp16blen
                                                         del temp16alen
                                                         del $4856load_global.30
                                                         temp32blen = $4868call_function.36 :: int64
                                                         del $4868call_function.36
2347:             temp64len = fast_expansion_sum_zeroelim(temp32alen, temp32a,
                $4872load_global.37 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2348:                                                     temp32blen, temp32b,
2349:                                                     temp64)
                                                        $4884call_function.43 = call $4872load_global.37(temp32alen, temp32a, temp32blen, temp32b, temp64, func=$4872load_global.37, args=[Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp32blen, adaptive_predicates.py:2052), Var(temp32b, adaptive_predicates.py:1715), Var(temp64, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32blen
                                                        del temp32alen
                                                        del $4872load_global.37
                                                        temp64len = $4884call_function.43 :: int64
                                                        del $4884call_function.43
2350:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2351:             # temp64len, temp64,
2352:             # finother)
2353:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $4888load_global.44 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2354:                                                     temp64len, temp64,
2355:                                                     fin2)
                                                        $4900call_function.50 = call $4888load_global.44(finlength, fin1, temp64len, temp64, fin2, func=$4888load_global.44, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp64len, adaptive_predicates.py:2055), Var(temp64, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp64len
                                                        del $4888load_global.44
                                                        finlength = $4900call_function.50 :: int64
                                                        del $4900call_function.50
2356:             # finswap = finnow
2357:             # finnow = finother
2358:             # finother = finswap
2359:             swap(fin1, fin2)
                $4904load_global.51 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $4910call_function.54 = call $4904load_global.51(fin1, fin2, func=$4904load_global.51, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $4910call_function.54
                del $4904load_global.51
2360:
2361:         if cdytail != 0.0:
            jump 4914
          label 4914
            del temp8
            del cxtabtt
            del cxtabt
            del cxtablen
            del cxtab
            del cdxtail
            del cdx
            del bdytail
            del bb
            del adytail
            del aa
            del $4550compare_op.2
            $const4916.1 = const(float, 0.0) :: float64
            $4918compare_op.2 = cdytail != $const4916.1 :: bool
            del $const4916.1
            branch $4918compare_op.2, 4924, 5144
2362:             temp16alen = scale_expansion_zeroelim(cytablen, cytab, cdytail,
              label 4924
                del $4918compare_op.2
                $4924load_global.0 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2363:                                                   temp16a, splitter)
                                                      $4936call_function.6 = call $4924load_global.0(cytablen, cytab, cdytail, temp16a, splitter, func=$4924load_global.0, args=[Var(cytablen, adaptive_predicates.py:1939), Var(cytab, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del cytablen
                                                      del cytab
                                                      del $4924load_global.0
                                                      temp16alen = $4936call_function.6 :: int64
                                                      del $4936call_function.6
2364:             cytabtlen = scale_expansion_zeroelim(abtlen, abt, cdytail, cytabt,
                $4940load_global.7 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2365:                                                  splitter)
                                                     $4952call_function.13 = call $4940load_global.7(abtlen, abt, cdytail, cytabt, splitter, func=$4940load_global.7, args=[Var(abtlen, adaptive_predicates.py:2270), Var(abt, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(cytabt, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                     del abtlen
                                                     del abt
                                                     del $4940load_global.7
                                                     cytabtlen = $4952call_function.13 :: int64
                                                     del $4952call_function.13
2366:             temp32alen = scale_expansion_zeroelim(cytabtlen, cytabt, 2.0 * cdy,
                $4956load_global.14 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
                $const4962.17 = const(float, 2.0) :: float64
                $4966binary_multiply.19 = $const4962.17 * cdy :: float64
                del $const4962.17
2367:                                                   temp32a, splitter)
                                                      $4972call_function.22 = call $4956load_global.14(cytabtlen, cytabt, $4966binary_multiply.19, temp32a, splitter, func=$4956load_global.14, args=[Var(cytabtlen, adaptive_predicates.py:2365), Var(cytabt, adaptive_predicates.py:1715), Var($4966binary_multiply.19, adaptive_predicates.py:2366), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $4966binary_multiply.19
                                                      del $4956load_global.14
                                                      temp32alen = $4972call_function.22 :: int64
                                                      del $4972call_function.22
2368:             temp48len = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $4976load_global.23 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2369:                                                     temp32alen, temp32a,
2370:                                                     temp48)
                                                        $4988call_function.29 = call $4976load_global.23(temp16alen, temp16a, temp32alen, temp32a, temp48, func=$4976load_global.23, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp48, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del $4976load_global.23
                                                        temp48len = $4988call_function.29 :: int64
                                                        del $4988call_function.29
2371:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2372:             # temp48len, temp48,
2373:             # finother)
2374:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $4992load_global.30 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2375:                                                     temp48len, temp48,
2376:                                                     fin2)
                                                        $5004call_function.36 = call $4992load_global.30(finlength, fin1, temp48len, temp48, fin2, func=$4992load_global.30, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp48len, adaptive_predicates.py:1824), Var(temp48, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp48len
                                                        del temp48
                                                        del $4992load_global.30
                                                        finlength = $5004call_function.36 :: int64
                                                        del $5004call_function.36
2377:             # finswap = finnow
2378:             # finnow = finother
2379:             # finother = finswap
2380:             swap(fin1, fin2)
                $5008load_global.37 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $5014call_function.40 = call $5008load_global.37(fin1, fin2, func=$5008load_global.37, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del $5014call_function.40
                del $5008load_global.37
2381:
2382:             temp32alen = scale_expansion_zeroelim(cytabtlen, cytabt, cdytail,
                $5018load_global.41 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2383:                                                   temp32a, splitter)
                                                      $5030call_function.47 = call $5018load_global.41(cytabtlen, cytabt, cdytail, temp32a, splitter, func=$5018load_global.41, args=[Var(cytabtlen, adaptive_predicates.py:2365), Var(cytabt, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(temp32a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del cytabtlen
                                                      del cytabt
                                                      del $5018load_global.41
                                                      temp32alen = $5030call_function.47 :: int64
                                                      del $5030call_function.47
2384:             cytabttlen = scale_expansion_zeroelim(abttlen, abtt, cdytail,
                $5034load_global.48 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2385:                                                   cytabtt, splitter)
                                                      $5046call_function.54 = call $5034load_global.48(abttlen, abtt, cdytail, cytabtt, splitter, func=$5034load_global.48, args=[Var(abttlen, adaptive_predicates.py:2276), Var(abtt, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(cytabtt, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del abttlen
                                                      del abtt
                                                      del $5034load_global.48
                                                      cytabttlen = $5046call_function.54 :: int64
                                                      del $5046call_function.54
2386:             temp16alen = scale_expansion_zeroelim(cytabttlen, cytabtt,
                $5050load_global.55 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2387:                                                   2.0 * cdy, temp16a, splitter)
                                                      $const5056.58 = const(float, 2.0) :: float64
                                                      $5060binary_multiply.60 = $const5056.58 * cdy :: float64
                                                      del cdy
                                                      del $const5056.58
                                                      $5066call_function.63 = call $5050load_global.55(cytabttlen, cytabtt, $5060binary_multiply.60, temp16a, splitter, func=$5050load_global.55, args=[Var(cytabttlen, adaptive_predicates.py:2385), Var(cytabtt, adaptive_predicates.py:1715), Var($5060binary_multiply.60, adaptive_predicates.py:2387), Var(temp16a, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del $5060binary_multiply.60
                                                      del $5050load_global.55
                                                      temp16alen = $5066call_function.63 :: int64
                                                      del $5066call_function.63
2388:             temp16blen = scale_expansion_zeroelim(cytabttlen, cytabtt, cdytail,
                $5070load_global.64 = global(scale_expansion_zeroelim: CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>)) :: type(CPUDispatcher(<function scale_expansion_zeroelim at 0x7f51d4472440>))
2389:                                                   temp16b, splitter)
                                                      $5082call_function.70 = call $5070load_global.64(cytabttlen, cytabtt, cdytail, temp16b, splitter, func=$5070load_global.64, args=[Var(cytabttlen, adaptive_predicates.py:2385), Var(cytabtt, adaptive_predicates.py:1715), Var(cdytail, adaptive_predicates.py:1765), Var(temp16b, adaptive_predicates.py:1715), Var(splitter, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), float64, array(float64, 1d, C), float64) -> int64
                                                      del splitter
                                                      del cytabttlen
                                                      del cytabtt
                                                      del cdytail
                                                      del $5070load_global.64
                                                      temp16blen = $5082call_function.70 :: int64
                                                      del $5082call_function.70
2390:             temp32blen = fast_expansion_sum_zeroelim(temp16alen, temp16a,
                $5086load_global.71 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2391:                                                      temp16blen, temp16b,
2392:                                                      temp32b)
                                                         $5098call_function.77 = call $5086load_global.71(temp16alen, temp16a, temp16blen, temp16b, temp32b, func=$5086load_global.71, args=[Var(temp16alen, adaptive_predicates.py:1811), Var(temp16a, adaptive_predicates.py:1715), Var(temp16blen, adaptive_predicates.py:1815), Var(temp16b, adaptive_predicates.py:1715), Var(temp32b, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                         del temp16blen
                                                         del temp16b
                                                         del temp16alen
                                                         del temp16a
                                                         del $5086load_global.71
                                                         temp32blen = $5098call_function.77 :: int64
                                                         del $5098call_function.77
2393:             temp64len = fast_expansion_sum_zeroelim(temp32alen, temp32a,
                $5102load_global.78 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2394:                                                     temp32blen, temp32b,
2395:                                                     temp64)
                                                        $5114call_function.84 = call $5102load_global.78(temp32alen, temp32a, temp32blen, temp32b, temp64, func=$5102load_global.78, args=[Var(temp32alen, adaptive_predicates.py:1822), Var(temp32a, adaptive_predicates.py:1715), Var(temp32blen, adaptive_predicates.py:2052), Var(temp32b, adaptive_predicates.py:1715), Var(temp64, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp32blen
                                                        del temp32b
                                                        del temp32alen
                                                        del temp32a
                                                        del $5102load_global.78
                                                        temp64len = $5114call_function.84 :: int64
                                                        del $5114call_function.84
2396:             # finlength = fast_expansion_sum_zeroelim(finlength, finnow,
2397:             # temp64len, temp64,
2398:             # finother)
2399:             finlength = fast_expansion_sum_zeroelim(finlength, fin1,
                $5118load_global.85 = global(fast_expansion_sum_zeroelim: CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>)) :: type(CPUDispatcher(<function fast_expansion_sum_zeroelim at 0x7f51d446a8c0>))
2400:                                                     temp64len, temp64,
2401:                                                     fin2)
                                                        $5130call_function.91 = call $5118load_global.85(finlength, fin1, temp64len, temp64, fin2, func=$5118load_global.85, args=[Var(finlength, adaptive_predicates.py:1753), Var(fin1, adaptive_predicates.py:1715), Var(temp64len, adaptive_predicates.py:2055), Var(temp64, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (int64, array(float64, 1d, C), int64, array(float64, 1d, C), array(float64, 1d, C)) -> int64
                                                        del temp64len
                                                        del temp64
                                                        del $5118load_global.85
                                                        finlength = $5130call_function.91 :: int64
                                                        del $5130call_function.91
2402:             # finswap = finnow
2403:             # finnow = finother
2404:             # finother = finswap
2405:             swap(fin1, fin2)
                $5134load_global.92 = global(swap: CPUDispatcher(<function swap at 0x7f51d4478830>)) :: type(CPUDispatcher(<function swap at 0x7f51d4478830>))
                $5140call_function.95 = call $5134load_global.92(fin1, fin2, func=$5134load_global.92, args=[Var(fin1, adaptive_predicates.py:1715), Var(fin2, adaptive_predicates.py:1715)], kws=(), vararg=None) :: (array(float64, 1d, C), array(float64, 1d, C)) -> none
                del fin2
                del $5140call_function.95
                del $5134load_global.92
2406:
2407:     return fin1[finlength - 1], 5
        jump 5144
      label 5144
        del v
        del u
        del temp8
        del temp64
        del temp48
        del temp32b
        del temp32a
        del temp16b
        del temp16a
        del splitter
        del fin2
        del cytabtt
        del cytabt
        del cytablen
        del cytab
        del cxtabtt
        del cxtabt
        del cxtablen
        del cxtab
        del cdytail
        del cdy
        del cdxtail
        del cdx
        del bdytail
        del bdy
        del bdxtail
        del bdx
        del bb
        del adytail
        del ady
        del adxtail
        del adx
        del abttlen
        del abtt
        del abtlen
        del abt
        del aa
        del $4918compare_op.2
        del $4232compare_op.2
        $const5148.2 = const(int, 1) :: Literal[int](1)
        $5150binary_subtract.3 = finlength - $const5148.2 :: int64
        del finlength
        del $const5148.2
        $5152binary_subscr.4 = getitem(value=fin1, index=$5150binary_subtract.3) :: float64
        del fin1
        del $5150binary_subtract.3
        $const5154.5 = const(int, 5) :: Literal[int](5)
        $5156build_tuple.6 = build_tuple(items=[Var($5152binary_subscr.4, adaptive_predicates.py:2407), Var($const5154.5, adaptive_predicates.py:2407)]) :: Tuple(float64, Literal[int](5))
        del $const5154.5
        del $5152binary_subscr.4
        $5158return_value.7 = cast(value=$5156build_tuple.6) :: Tuple(float64, Literal[int](5))
        del $5156build_tuple.6
        return $5158return_value.7



Function name: incircle
in file: /home/rohan/Documents/BTP/BTP/experimental/counting_predicates/TwoD/tools/adaptive_predicates.py
with signature: (float64, float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64, float64) -> Tuple(float64, int64)
2410: @njit
2411: def incircle(pa_x, pa_y, pb_x, pb_y, pc_x, pc_y, pd_x, pd_y, bc, ca, ab, axbc,
2412:              axxbc, aybc, ayybc, adet, bxca, bxxca, byca, byyca, bdet, cxab,
2413:              cxxab, cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb, cc, u, v,
2414:              temp8, temp16a, temp16b, temp16c, temp32a, temp32b, temp48,
2415:              temp64, axtbb, axtcc, aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc,
2416:              cxtaa, cxtbb, cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab,
2417:              cytab, axtbct, aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt,
2418:              aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct, cat, abtt,
2419:              bctt, catt, splitter, iccerrboundA, iccerrboundB, iccerrboundC,
2420:              resulterrbound, det, permanent):
2421:     '''
2422:     len(bc) = 4
2423:     len(ca) = 4
2424:     len(ab) = 4
2425:     len(axbc) = 8
2426:     len(axxbc) = 16
2427:     len(aybc) = 8
2428:     len(ayybc) = 16
2429:     len(adet) = 32
2430:     len(bxca) = 8
2431:     len(bxxca) = 16
2432:     len(byca) = 8
2433:     len(byyca) = 16
2434:     len(bdet) = 32
2435:     len(cxab) = 8
2436:     len(cxxab) = 16
2437:     len(cyab) = 8
2438:     len(cyyab) = 16
2439:     len(cdet) = 32
2440:     len(abdet) = 64
2441:     len(fin1) = 1152
2442:     len(fin2) = 1152
2443:     len(aa) = 4
2444:     len(bb) = 4
2445:     len(cc) = 4
2446:     len(u) = 4
2447:     len(v) = 4
2448:     len(temp8) = 8
2449:     len(temp16a) = 16
2450:     len(temp16b) = 16
2451:     len(temp16c) = 16
2452:     len(temp32a) = 32
2453:     len(temp32b) = 32
2454:     len(temp48) = 48
2455:     len(temp64) = 64
2456:     len(axtbb) = 8
2457:     len(axtcc) = 8
2458:     len(aytbb) = 8
2459:     len(aytcc) = 8
2460:     len(bxtaa) = 8
2461:     len(bxtcc) = 8
2462:     len(bytaa) = 8
2463:     len(bytcc) = 8
2464:     len(cxtaa) = 8
2465:     len(cxtbb) = 8
2466:     len(cytaa) = 8
2467:     len(cytbb) = 8
2468:     len(axtbc) = 8
2469:     len(aytbc) = 8
2470:     len(bxtca) = 8
2471:     len(bytca) = 8
2472:     len(cxtab) = 8
2473:     len(cytab) = 8
2474:     len(axtbct) = 16
2475:     len(aytbct) = 16
2476:     len(bxtcat) = 16
2477:     len(bytcat) = 16
2478:     len(cxtabt) = 16
2479:     len(cytabt) = 16
2480:     len(axtbctt) = 8
2481:     len(aytbctt) = 8
2482:     len(bxtcatt) = 8
2483:     len(bytcatt) = 8
2484:     len(cxtabtt) = 8
2485:     len(cytabtt) = 8
2486:     len(abt) = 8
2487:     len(bct) = 8
2488:     len(cat) = 8
2489:     len(abtt) = 4
2490:     len(bctt) = 4
2491:     len(catt) = 4
2492:     '''
2493:
2494:     errbound = iccerrboundA * permanent
      label 0
        pa_x = arg(0, name=pa_x) :: float64
        pa_y = arg(1, name=pa_y) :: float64
        pb_x = arg(2, name=pb_x) :: float64
        pb_y = arg(3, name=pb_y) :: float64
        pc_x = arg(4, name=pc_x) :: float64
        pc_y = arg(5, name=pc_y) :: float64
        pd_x = arg(6, name=pd_x) :: float64
        pd_y = arg(7, name=pd_y) :: float64
        bc = arg(8, name=bc) :: array(float64, 1d, C)
        ca = arg(9, name=ca) :: array(float64, 1d, C)
        ab = arg(10, name=ab) :: array(float64, 1d, C)
        axbc = arg(11, name=axbc) :: array(float64, 1d, C)
        axxbc = arg(12, name=axxbc) :: array(float64, 1d, C)
        aybc = arg(13, name=aybc) :: array(float64, 1d, C)
        ayybc = arg(14, name=ayybc) :: array(float64, 1d, C)
        adet = arg(15, name=adet) :: array(float64, 1d, C)
        bxca = arg(16, name=bxca) :: array(float64, 1d, C)
        bxxca = arg(17, name=bxxca) :: array(float64, 1d, C)
        byca = arg(18, name=byca) :: array(float64, 1d, C)
        byyca = arg(19, name=byyca) :: array(float64, 1d, C)
        bdet = arg(20, name=bdet) :: array(float64, 1d, C)
        cxab = arg(21, name=cxab) :: array(float64, 1d, C)
        cxxab = arg(22, name=cxxab) :: array(float64, 1d, C)
        cyab = arg(23, name=cyab) :: array(float64, 1d, C)
        cyyab = arg(24, name=cyyab) :: array(float64, 1d, C)
        cdet = arg(25, name=cdet) :: array(float64, 1d, C)
        abdet = arg(26, name=abdet) :: array(float64, 1d, C)
        fin1 = arg(27, name=fin1) :: array(float64, 1d, C)
        fin2 = arg(28, name=fin2) :: array(float64, 1d, C)
        aa = arg(29, name=aa) :: array(float64, 1d, C)
        bb = arg(30, name=bb) :: array(float64, 1d, C)
        cc = arg(31, name=cc) :: array(float64, 1d, C)
        u = arg(32, name=u) :: array(float64, 1d, C)
        v = arg(33, name=v) :: array(float64, 1d, C)
        temp8 = arg(34, name=temp8) :: array(float64, 1d, C)
        temp16a = arg(35, name=temp16a) :: array(float64, 1d, C)
        temp16b = arg(36, name=temp16b) :: array(float64, 1d, C)
        temp16c = arg(37, name=temp16c) :: array(float64, 1d, C)
        temp32a = arg(38, name=temp32a) :: array(float64, 1d, C)
        temp32b = arg(39, name=temp32b) :: array(float64, 1d, C)
        temp48 = arg(40, name=temp48) :: array(float64, 1d, C)
        temp64 = arg(41, name=temp64) :: array(float64, 1d, C)
        axtbb = arg(42, name=axtbb) :: array(float64, 1d, C)
        axtcc = arg(43, name=axtcc) :: array(float64, 1d, C)
        aytbb = arg(44, name=aytbb) :: array(float64, 1d, C)
        aytcc = arg(45, name=aytcc) :: array(float64, 1d, C)
        bxtaa = arg(46, name=bxtaa) :: array(float64, 1d, C)
        bxtcc = arg(47, name=bxtcc) :: array(float64, 1d, C)
        bytaa = arg(48, name=bytaa) :: array(float64, 1d, C)
        bytcc = arg(49, name=bytcc) :: array(float64, 1d, C)
        cxtaa = arg(50, name=cxtaa) :: array(float64, 1d, C)
        cxtbb = arg(51, name=cxtbb) :: array(float64, 1d, C)
        cytaa = arg(52, name=cytaa) :: array(float64, 1d, C)
        cytbb = arg(53, name=cytbb) :: array(float64, 1d, C)
        axtbc = arg(54, name=axtbc) :: array(float64, 1d, C)
        aytbc = arg(55, name=aytbc) :: array(float64, 1d, C)
        bxtca = arg(56, name=bxtca) :: array(float64, 1d, C)
        bytca = arg(57, name=bytca) :: array(float64, 1d, C)
        cxtab = arg(58, name=cxtab) :: array(float64, 1d, C)
        cytab = arg(59, name=cytab) :: array(float64, 1d, C)
        axtbct = arg(60, name=axtbct) :: array(float64, 1d, C)
        aytbct = arg(61, name=aytbct) :: array(float64, 1d, C)
        bxtcat = arg(62, name=bxtcat) :: array(float64, 1d, C)
        bytcat = arg(63, name=bytcat) :: array(float64, 1d, C)
        cxtabt = arg(64, name=cxtabt) :: array(float64, 1d, C)
        cytabt = arg(65, name=cytabt) :: array(float64, 1d, C)
        axtbctt = arg(66, name=axtbctt) :: array(float64, 1d, C)
        aytbctt = arg(67, name=aytbctt) :: array(float64, 1d, C)
        bxtcatt = arg(68, name=bxtcatt) :: array(float64, 1d, C)
        bytcatt = arg(69, name=bytcatt) :: array(float64, 1d, C)
        cxtabtt = arg(70, name=cxtabtt) :: array(float64, 1d, C)
        cytabtt = arg(71, name=cytabtt) :: array(float64, 1d, C)
        abt = arg(72, name=abt) :: array(float64, 1d, C)
        bct = arg(73, name=bct) :: array(float64, 1d, C)
        cat = arg(74, name=cat) :: array(float64, 1d, C)
        abtt = arg(75, name=abtt) :: array(float64, 1d, C)
        bctt = arg(76, name=bctt) :: array(float64, 1d, C)
        catt = arg(77, name=catt) :: array(float64, 1d, C)
        splitter = arg(78, name=splitter) :: float64
        iccerrboundA = arg(79, name=iccerrboundA) :: float64
        iccerrboundB = arg(80, name=iccerrboundB) :: float64
        iccerrboundC = arg(81, name=iccerrboundC) :: float64
        resulterrbound = arg(82, name=resulterrbound) :: float64
        det = arg(83, name=det) :: float64
        permanent = arg(84, name=permanent) :: float64
        $6binary_multiply.2 = iccerrboundA * permanent :: float64
        del iccerrboundA
        errbound = $6binary_multiply.2 :: float64
        del $6binary_multiply.2
2495:     if np.abs(det) > errbound:
        $10load_global.3 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $12load_method.4 = getattr(value=$10load_global.3, attr=abs) :: Function(<ufunc 'absolute'>)
        del $10load_global.3
        $16call_method.6 = call $12load_method.4(det, func=$12load_method.4, args=[Var(det, adaptive_predicates.py:2494)], kws=(), vararg=None) :: (float64,) -> float64
        del $12load_method.4
        $20compare_op.8 = $16call_method.6 > errbound :: bool
        del errbound
        del $16call_method.6
        branch $20compare_op.8, 24, 32
2496:         return det, 1
          label 24
            del v
            del u
            del temp8
            del temp64
            del temp48
            del temp32b
            del temp32a
            del temp16c
            del temp16b
            del temp16a
            del splitter
            del resulterrbound
            del permanent
            del pd_y
            del pd_x
            del pc_y
            del pc_x
            del pb_y
            del pb_x
            del pa_y
            del pa_x
            del iccerrboundC
            del iccerrboundB
            del fin2
            del fin1
            del cyyab
            del cytbb
            del cytabtt
            del cytabt
            del cytab
            del cytaa
            del cyab
            del cxxab
            del cxtbb
            del cxtabtt
            del cxtabt
            del cxtab
            del cxtaa
            del cxab
            del cdet
            del cc
            del catt
            del cat
            del ca
            del byyca
            del bytcc
            del bytcatt
            del bytcat
            del bytca
            del bytaa
            del byca
            del bxxca
            del bxtcc
            del bxtcatt
            del bxtcat
            del bxtca
            del bxtaa
            del bxca
            del bdet
            del bctt
            del bct
            del bc
            del bb
            del ayybc
            del aytcc
            del aytbctt
            del aytbct
            del aytbc
            del aytbb
            del aybc
            del axxbc
            del axtcc
            del axtbctt
            del axtbct
            del axtbc
            del axtbb
            del axbc
            del adet
            del abtt
            del abt
            del abdet
            del ab
            del aa
            del $20compare_op.8
            $const26.1 = const(int, 1) :: Literal[int](1)
            $28build_tuple.2 = build_tuple(items=[Var(det, adaptive_predicates.py:2494), Var($const26.1, adaptive_predicates.py:2496)]) :: Tuple(float64, Literal[int](1))
            del det
            del $const26.1
            $30return_value.3 = cast(value=$28build_tuple.2) :: Tuple(float64, Literal[int](1))
            del $28build_tuple.2
            return $30return_value.3
2497:
2498:     # return det, 2
2499:
2500:     return incircleadapt(pa_x, pa_y, pb_x, pb_y, pc_x, pc_y, pd_x, pd_y,
      label 32
        del det
        del $20compare_op.8
        $32load_global.0 = global(incircleadapt: CPUDispatcher(<function incircleadapt at 0x7f51d4478b00>)) :: type(CPUDispatcher(<function incircleadapt at 0x7f51d4478b00>))
2501:                          permanent, bc, ca, ab, axbc, axxbc, aybc, ayybc, adet,
2502:                          bxca, bxxca, byca, byyca, bdet, cxab, cxxab, cyab,
2503:                          cyyab, cdet, abdet, fin1, fin2, aa, bb, cc, u, v,
2504:                          temp8, temp16a, temp16b, temp16c, temp32a, temp32b,
2505:                          temp48, temp64, axtbb, axtcc, aytbb, aytcc, bxtaa,
2506:                          bxtcc, bytaa, bytcc, cxtaa, cxtbb, cytaa, cytbb,
2507:                          axtbc, aytbc, bxtca, bytca, cxtab, cytab, axtbct,
2508:                          aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt,
2509:                          aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct,
2510:                          cat, abtt, bctt, catt, splitter, iccerrboundB,
2511:                          iccerrboundC, resulterrbound)
                             $200call_function.84 = call $32load_global.0(pa_x, pa_y, pb_x, pb_y, pc_x, pc_y, pd_x, pd_y, permanent, bc, ca, ab, axbc, axxbc, aybc, ayybc, adet, bxca, bxxca, byca, byyca, bdet, cxab, cxxab, cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb, cc, u, v, temp8, temp16a, temp16b, temp16c, temp32a, temp32b, temp48, temp64, axtbb, axtcc, aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb, cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab, axtbct, aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt, aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct, cat, abtt, bctt, catt, splitter, iccerrboundB, iccerrboundC, resulterrbound, func=$32load_global.0, args=[Var(pa_x, adaptive_predicates.py:2494), Var(pa_y, adaptive_predicates.py:2494), Var(pb_x, adaptive_predicates.py:2494), Var(pb_y, adaptive_predicates.py:2494), Var(pc_x, adaptive_predicates.py:2494), Var(pc_y, adaptive_predicates.py:2494), Var(pd_x, adaptive_predicates.py:2494), Var(pd_y, adaptive_predicates.py:2494), Var(permanent, adaptive_predicates.py:2494), Var(bc, adaptive_predicates.py:2494), Var(ca, adaptive_predicates.py:2494), Var(ab, adaptive_predicates.py:2494), Var(axbc, adaptive_predicates.py:2494), Var(axxbc, adaptive_predicates.py:2494), Var(aybc, adaptive_predicates.py:2494), Var(ayybc, adaptive_predicates.py:2494), Var(adet, adaptive_predicates.py:2494), Var(bxca, adaptive_predicates.py:2494), Var(bxxca, adaptive_predicates.py:2494), Var(byca, adaptive_predicates.py:2494), Var(byyca, adaptive_predicates.py:2494), Var(bdet, adaptive_predicates.py:2494), Var(cxab, adaptive_predicates.py:2494), Var(cxxab, adaptive_predicates.py:2494), Var(cyab, adaptive_predicates.py:2494), Var(cyyab, adaptive_predicates.py:2494), Var(cdet, adaptive_predicates.py:2494), Var(abdet, adaptive_predicates.py:2494), Var(fin1, adaptive_predicates.py:2494), Var(fin2, adaptive_predicates.py:2494), Var(aa, adaptive_predicates.py:2494), Var(bb, adaptive_predicates.py:2494), Var(cc, adaptive_predicates.py:2494), Var(u, adaptive_predicates.py:2494), Var(v, adaptive_predicates.py:2494), Var(temp8, adaptive_predicates.py:2494), Var(temp16a, adaptive_predicates.py:2494), Var(temp16b, adaptive_predicates.py:2494), Var(temp16c, adaptive_predicates.py:2494), Var(temp32a, adaptive_predicates.py:2494), Var(temp32b, adaptive_predicates.py:2494), Var(temp48, adaptive_predicates.py:2494), Var(temp64, adaptive_predicates.py:2494), Var(axtbb, adaptive_predicates.py:2494), Var(axtcc, adaptive_predicates.py:2494), Var(aytbb, adaptive_predicates.py:2494), Var(aytcc, adaptive_predicates.py:2494), Var(bxtaa, adaptive_predicates.py:2494), Var(bxtcc, adaptive_predicates.py:2494), Var(bytaa, adaptive_predicates.py:2494), Var(bytcc, adaptive_predicates.py:2494), Var(cxtaa, adaptive_predicates.py:2494), Var(cxtbb, adaptive_predicates.py:2494), Var(cytaa, adaptive_predicates.py:2494), Var(cytbb, adaptive_predicates.py:2494), Var(axtbc, adaptive_predicates.py:2494), Var(aytbc, adaptive_predicates.py:2494), Var(bxtca, adaptive_predicates.py:2494), Var(bytca, adaptive_predicates.py:2494), Var(cxtab, adaptive_predicates.py:2494), Var(cytab, adaptive_predicates.py:2494), Var(axtbct, adaptive_predicates.py:2494), Var(aytbct, adaptive_predicates.py:2494), Var(bxtcat, adaptive_predicates.py:2494), Var(bytcat, adaptive_predicates.py:2494), Var(cxtabt, adaptive_predicates.py:2494), Var(cytabt, adaptive_predicates.py:2494), Var(axtbctt, adaptive_predicates.py:2494), Var(aytbctt, adaptive_predicates.py:2494), Var(bxtcatt, adaptive_predicates.py:2494), Var(bytcatt, adaptive_predicates.py:2494), Var(cxtabtt, adaptive_predicates.py:2494), Var(cytabtt, adaptive_predicates.py:2494), Var(abt, adaptive_predicates.py:2494), Var(bct, adaptive_predicates.py:2494), Var(cat, adaptive_predicates.py:2494), Var(abtt, adaptive_predicates.py:2494), Var(bctt, adaptive_predicates.py:2494), Var(catt, adaptive_predicates.py:2494), Var(splitter, adaptive_predicates.py:2494), Var(iccerrboundB, adaptive_predicates.py:2494), Var(iccerrboundC, adaptive_predicates.py:2494), Var(resulterrbound, adaptive_predicates.py:2494)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64) -> Tuple(float64, int64)
                             del v
                             del u
                             del temp8
                             del temp64
                             del temp48
                             del temp32b
                             del temp32a
                             del temp16c
                             del temp16b
                             del temp16a
                             del splitter
                             del resulterrbound
                             del permanent
                             del pd_y
                             del pd_x
                             del pc_y
                             del pc_x
                             del pb_y
                             del pb_x
                             del pa_y
                             del pa_x
                             del iccerrboundC
                             del iccerrboundB
                             del fin2
                             del fin1
                             del cyyab
                             del cytbb
                             del cytabtt
                             del cytabt
                             del cytab
                             del cytaa
                             del cyab
                             del cxxab
                             del cxtbb
                             del cxtabtt
                             del cxtabt
                             del cxtab
                             del cxtaa
                             del cxab
                             del cdet
                             del cc
                             del catt
                             del cat
                             del ca
                             del byyca
                             del bytcc
                             del bytcatt
                             del bytcat
                             del bytca
                             del bytaa
                             del byca
                             del bxxca
                             del bxtcc
                             del bxtcatt
                             del bxtcat
                             del bxtca
                             del bxtaa
                             del bxca
                             del bdet
                             del bctt
                             del bct
                             del bc
                             del bb
                             del ayybc
                             del aytcc
                             del aytbctt
                             del aytbct
                             del aytbc
                             del aytbb
                             del aybc
                             del axxbc
                             del axtcc
                             del axtbctt
                             del axtbct
                             del axtbc
                             del axtbb
                             del axbc
                             del adet
                             del abtt
                             del abt
                             del abdet
                             del ab
                             del aa
                             del $32load_global.0
                             $202return_value.85 = cast(value=$200call_function.84) :: Tuple(float64, int64)
                             del $200call_function.84
                             return $202return_value.85



Function name: _cavity_helper
in file: final_2D_robust_multidimarr.py
with signature: (int64, int64, array(float64, 2d, C), array(int64, 2d, C), int64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64, float64, float64, float64, float64, array(int64, 1d, C), array(int64, 1d, C)) -> bool
120: @njit
121: def _cavity_helper(
122:         point_id, t_index, points, vertices_ID, gv, B, C1, C2, D, u, v, bc, ca,
123:         ab, axbc, axxbc, aybc, ayybc, adet, bxca, bxxca, byca, byyca, bdet,
124:         cxab, cxxab, cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb, cc, temp8,
125:         temp16a, temp16b, temp16c, temp32a, temp32b, temp48, temp64, axtbb,
126:         axtcc, aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb, cytaa,
127:         cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab, axtbct, aytbct,
128:         bxtcat, bytcat, cxtabt, cytabt, axtbctt, aytbctt, bxtcatt, bytcatt,
129:         cxtabtt, cytabtt, abt, bct, cat, abtt, bctt, catt, splitter,
130:         iccerrboundA, iccerrboundB, iccerrboundC, resulterrbound, ccwerrboundA,
131:         ccwerrboundB, ccwerrboundC, static_filter_o2d, static_filter_i2d,
132:         orient2d_count, incircle_count):
133:     '''
134:     Checks whether the given point lies inside the circumsphere the given tri.
135:     Returns True if it does.
136:
137:             point_id : The index (corresponding to the points array) of the
138:                        point to be inserted into the triangulation.
139:              t_index : The index of the tri to check.
140:               points : The global array storing the co-ordinates of all the
141:                        points to be triangulated.
142:          vertices_ID : The global array storing all the indices (corresponding
143:                        to the points array) of the vertices of all the tri.
144:     sub_determinants : The global array storing the sub-determinants of all the
145:                        tri.
146:                   gv : Index assigned to the ghost vertex.
147:     '''
148:
149:     gv_idx = 3
      label 0
        point_id = arg(0, name=point_id) :: int64
        t_index = arg(1, name=t_index) :: int64
        points = arg(2, name=points) :: array(float64, 2d, C)
        vertices_ID = arg(3, name=vertices_ID) :: array(int64, 2d, C)
        gv = arg(4, name=gv) :: int64
        B = arg(5, name=B) :: array(float64, 1d, C)
        C1 = arg(6, name=C1) :: array(float64, 1d, C)
        C2 = arg(7, name=C2) :: array(float64, 1d, C)
        D = arg(8, name=D) :: array(float64, 1d, C)
        u = arg(9, name=u) :: array(float64, 1d, C)
        v = arg(10, name=v) :: array(float64, 1d, C)
        bc = arg(11, name=bc) :: array(float64, 1d, C)
        ca = arg(12, name=ca) :: array(float64, 1d, C)
        ab = arg(13, name=ab) :: array(float64, 1d, C)
        axbc = arg(14, name=axbc) :: array(float64, 1d, C)
        axxbc = arg(15, name=axxbc) :: array(float64, 1d, C)
        aybc = arg(16, name=aybc) :: array(float64, 1d, C)
        ayybc = arg(17, name=ayybc) :: array(float64, 1d, C)
        adet = arg(18, name=adet) :: array(float64, 1d, C)
        bxca = arg(19, name=bxca) :: array(float64, 1d, C)
        bxxca = arg(20, name=bxxca) :: array(float64, 1d, C)
        byca = arg(21, name=byca) :: array(float64, 1d, C)
        byyca = arg(22, name=byyca) :: array(float64, 1d, C)
        bdet = arg(23, name=bdet) :: array(float64, 1d, C)
        cxab = arg(24, name=cxab) :: array(float64, 1d, C)
        cxxab = arg(25, name=cxxab) :: array(float64, 1d, C)
        cyab = arg(26, name=cyab) :: array(float64, 1d, C)
        cyyab = arg(27, name=cyyab) :: array(float64, 1d, C)
        cdet = arg(28, name=cdet) :: array(float64, 1d, C)
        abdet = arg(29, name=abdet) :: array(float64, 1d, C)
        fin1 = arg(30, name=fin1) :: array(float64, 1d, C)
        fin2 = arg(31, name=fin2) :: array(float64, 1d, C)
        aa = arg(32, name=aa) :: array(float64, 1d, C)
        bb = arg(33, name=bb) :: array(float64, 1d, C)
        cc = arg(34, name=cc) :: array(float64, 1d, C)
        temp8 = arg(35, name=temp8) :: array(float64, 1d, C)
        temp16a = arg(36, name=temp16a) :: array(float64, 1d, C)
        temp16b = arg(37, name=temp16b) :: array(float64, 1d, C)
        temp16c = arg(38, name=temp16c) :: array(float64, 1d, C)
        temp32a = arg(39, name=temp32a) :: array(float64, 1d, C)
        temp32b = arg(40, name=temp32b) :: array(float64, 1d, C)
        temp48 = arg(41, name=temp48) :: array(float64, 1d, C)
        temp64 = arg(42, name=temp64) :: array(float64, 1d, C)
        axtbb = arg(43, name=axtbb) :: array(float64, 1d, C)
        axtcc = arg(44, name=axtcc) :: array(float64, 1d, C)
        aytbb = arg(45, name=aytbb) :: array(float64, 1d, C)
        aytcc = arg(46, name=aytcc) :: array(float64, 1d, C)
        bxtaa = arg(47, name=bxtaa) :: array(float64, 1d, C)
        bxtcc = arg(48, name=bxtcc) :: array(float64, 1d, C)
        bytaa = arg(49, name=bytaa) :: array(float64, 1d, C)
        bytcc = arg(50, name=bytcc) :: array(float64, 1d, C)
        cxtaa = arg(51, name=cxtaa) :: array(float64, 1d, C)
        cxtbb = arg(52, name=cxtbb) :: array(float64, 1d, C)
        cytaa = arg(53, name=cytaa) :: array(float64, 1d, C)
        cytbb = arg(54, name=cytbb) :: array(float64, 1d, C)
        axtbc = arg(55, name=axtbc) :: array(float64, 1d, C)
        aytbc = arg(56, name=aytbc) :: array(float64, 1d, C)
        bxtca = arg(57, name=bxtca) :: array(float64, 1d, C)
        bytca = arg(58, name=bytca) :: array(float64, 1d, C)
        cxtab = arg(59, name=cxtab) :: array(float64, 1d, C)
        cytab = arg(60, name=cytab) :: array(float64, 1d, C)
        axtbct = arg(61, name=axtbct) :: array(float64, 1d, C)
        aytbct = arg(62, name=aytbct) :: array(float64, 1d, C)
        bxtcat = arg(63, name=bxtcat) :: array(float64, 1d, C)
        bytcat = arg(64, name=bytcat) :: array(float64, 1d, C)
        cxtabt = arg(65, name=cxtabt) :: array(float64, 1d, C)
        cytabt = arg(66, name=cytabt) :: array(float64, 1d, C)
        axtbctt = arg(67, name=axtbctt) :: array(float64, 1d, C)
        aytbctt = arg(68, name=aytbctt) :: array(float64, 1d, C)
        bxtcatt = arg(69, name=bxtcatt) :: array(float64, 1d, C)
        bytcatt = arg(70, name=bytcatt) :: array(float64, 1d, C)
        cxtabtt = arg(71, name=cxtabtt) :: array(float64, 1d, C)
        cytabtt = arg(72, name=cytabtt) :: array(float64, 1d, C)
        abt = arg(73, name=abt) :: array(float64, 1d, C)
        bct = arg(74, name=bct) :: array(float64, 1d, C)
        cat = arg(75, name=cat) :: array(float64, 1d, C)
        abtt = arg(76, name=abtt) :: array(float64, 1d, C)
        bctt = arg(77, name=bctt) :: array(float64, 1d, C)
        catt = arg(78, name=catt) :: array(float64, 1d, C)
        splitter = arg(79, name=splitter) :: float64
        iccerrboundA = arg(80, name=iccerrboundA) :: float64
        iccerrboundB = arg(81, name=iccerrboundB) :: float64
        iccerrboundC = arg(82, name=iccerrboundC) :: float64
        resulterrbound = arg(83, name=resulterrbound) :: float64
        ccwerrboundA = arg(84, name=ccwerrboundA) :: float64
        ccwerrboundB = arg(85, name=ccwerrboundB) :: float64
        ccwerrboundC = arg(86, name=ccwerrboundC) :: float64
        static_filter_o2d = arg(87, name=static_filter_o2d) :: float64
        static_filter_i2d = arg(88, name=static_filter_i2d) :: float64
        orient2d_count = arg(89, name=orient2d_count) :: array(int64, 1d, C)
        incircle_count = arg(90, name=incircle_count) :: array(int64, 1d, C)
        $const2.0 = const(int, 3) :: Literal[int](3)
        gv_idx = $const2.0 :: int64
        del $const2.0
150:     if vertices_ID[t_index, 0] == gv:
        $const10.3 = const(int, 0) :: Literal[int](0)
        $12build_tuple.4 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const10.3, final_2D_robust_multidimarr.py:150)]) :: Tuple(int64, Literal[int](0))
        del $const10.3
        $14binary_subscr.5 = getitem(value=vertices_ID, index=$12build_tuple.4) :: int64
        del $12build_tuple.4
        $18compare_op.7 = $14binary_subscr.5 == gv :: bool
        del $14binary_subscr.5
        branch $18compare_op.7, 22, 28
151:         gv_idx = 0
          label 22
            del gv
            del $18compare_op.7
            $const22.0 = const(int, 0) :: Literal[int](0)
            gv_idx = $const22.0 :: int64
            del $const22.0
            jump 70
152:     elif vertices_ID[t_index, 1] == gv:
      label 28
        del $18compare_op.7
        $const32.2 = const(int, 1) :: Literal[int](1)
        $34build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const32.2, final_2D_robust_multidimarr.py:152)]) :: Tuple(int64, Literal[int](1))
        del $const32.2
        $36binary_subscr.4 = getitem(value=vertices_ID, index=$34build_tuple.3) :: int64
        del $34build_tuple.3
        $40compare_op.6 = $36binary_subscr.4 == gv :: bool
        del $36binary_subscr.4
        branch $40compare_op.6, 44, 50
153:         gv_idx = 1
          label 44
            del gv
            del $40compare_op.6
            $const44.0 = const(int, 1) :: Literal[int](1)
            gv_idx = $const44.0 :: int64
            del $const44.0
            jump 70
154:     elif vertices_ID[t_index, 2] == gv:
      label 50
        del $40compare_op.6
        $const54.2 = const(int, 2) :: Literal[int](2)
        $56build_tuple.3 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const54.2, final_2D_robust_multidimarr.py:154)]) :: Tuple(int64, Literal[int](2))
        del $const54.2
        $58binary_subscr.4 = getitem(value=vertices_ID, index=$56build_tuple.3) :: int64
        del $56build_tuple.3
        $62compare_op.6 = $58binary_subscr.4 == gv :: bool
        del gv
        del $58binary_subscr.4
        branch $62compare_op.6, 66, 70
155:         gv_idx = 2
          label 66
            del $62compare_op.6
            $const66.0 = const(int, 2) :: Literal[int](2)
            gv_idx = $const66.0 :: int64
            del $const66.0
156:
157:     point_x = points[point_id, 0]
        jump 70
      label 70
        del $62compare_op.6
        $const74.2 = const(int, 0) :: Literal[int](0)
        $76build_tuple.3 = build_tuple(items=[Var(point_id, final_2D_robust_multidimarr.py:149), Var($const74.2, final_2D_robust_multidimarr.py:157)]) :: Tuple(int64, Literal[int](0))
        del $const74.2
        $78binary_subscr.4 = getitem(value=points, index=$76build_tuple.3) :: float64
        del $76build_tuple.3
        point_x = $78binary_subscr.4 :: float64
        del $78binary_subscr.4
158:     point_y = points[point_id, 1]
        $const86.7 = const(int, 1) :: Literal[int](1)
        $88build_tuple.8 = build_tuple(items=[Var(point_id, final_2D_robust_multidimarr.py:149), Var($const86.7, final_2D_robust_multidimarr.py:158)]) :: Tuple(int64, Literal[int](1))
        del point_id
        del $const86.7
        $90binary_subscr.9 = getitem(value=points, index=$88build_tuple.8) :: float64
        del $88build_tuple.8
        point_y = $90binary_subscr.9 :: float64
        del $90binary_subscr.9
159:
160:     if gv_idx != 3:
        $const96.11 = const(int, 3) :: Literal[int](3)
        $98compare_op.12 = gv_idx != $const96.11 :: bool
        del $const96.11
        branch $98compare_op.12, 104, 620
161:         # t_index is a ghost triangle
162:         if gv_idx == 0:
          label 104
            del v
            del temp8
            del temp64
            del temp48
            del temp32b
            del temp32a
            del temp16c
            del temp16b
            del temp16a
            del static_filter_i2d
            del incircle_count
            del iccerrboundC
            del iccerrboundB
            del iccerrboundA
            del fin2
            del fin1
            del cyyab
            del cytbb
            del cytabtt
            del cytabt
            del cytab
            del cytaa
            del cyab
            del cxxab
            del cxtbb
            del cxtabtt
            del cxtabt
            del cxtab
            del cxtaa
            del cxab
            del cdet
            del cc
            del catt
            del cat
            del ca
            del byyca
            del bytcc
            del bytcatt
            del bytcat
            del bytca
            del bytaa
            del byca
            del bxxca
            del bxtcc
            del bxtcatt
            del bxtcat
            del bxtca
            del bxtaa
            del bxca
            del bdet
            del bctt
            del bct
            del bc
            del bb
            del ayybc
            del aytcc
            del aytbctt
            del aytbct
            del aytbc
            del aytbb
            del aybc
            del axxbc
            del axtcc
            del axtbctt
            del axtbct
            del axtbc
            del axtbb
            del axbc
            del adet
            del abtt
            del abt
            del abdet
            del ab
            del aa
            del $98compare_op.12
            $const106.1 = const(int, 0) :: Literal[int](0)
            $108compare_op.2 = gv_idx == $const106.1 :: bool
            del $const106.1
            branch $108compare_op.2, 112, 194
163:             b_x = points[vertices_ID[t_index, 1], 0]
              label 112
                del gv_idx
                del $108compare_op.2
                $const118.3 = const(int, 1) :: Literal[int](1)
                $120build_tuple.4 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const118.3, final_2D_robust_multidimarr.py:163)]) :: Tuple(int64, Literal[int](1))
                del $const118.3
                $122binary_subscr.5 = getitem(value=vertices_ID, index=$120build_tuple.4) :: int64
                del $120build_tuple.4
                $const124.6 = const(int, 0) :: Literal[int](0)
                $126build_tuple.7 = build_tuple(items=[Var($122binary_subscr.5, final_2D_robust_multidimarr.py:163), Var($const124.6, final_2D_robust_multidimarr.py:163)]) :: Tuple(int64, Literal[int](0))
                del $const124.6
                del $122binary_subscr.5
                $128binary_subscr.8 = getitem(value=points, index=$126build_tuple.7) :: float64
                del $126build_tuple.7
                b_x = $128binary_subscr.8 :: float64
                del $128binary_subscr.8
164:             b_y = points[vertices_ID[t_index, 1], 1]
                $const138.12 = const(int, 1) :: Literal[int](1)
                $140build_tuple.13 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const138.12, final_2D_robust_multidimarr.py:164)]) :: Tuple(int64, Literal[int](1))
                del $const138.12
                $142binary_subscr.14 = getitem(value=vertices_ID, index=$140build_tuple.13) :: int64
                del $140build_tuple.13
                $const144.15 = const(int, 1) :: Literal[int](1)
                $146build_tuple.16 = build_tuple(items=[Var($142binary_subscr.14, final_2D_robust_multidimarr.py:164), Var($const144.15, final_2D_robust_multidimarr.py:164)]) :: Tuple(int64, Literal[int](1))
                del $const144.15
                del $142binary_subscr.14
                $148binary_subscr.17 = getitem(value=points, index=$146build_tuple.16) :: float64
                del $146build_tuple.16
                b_y = $148binary_subscr.17 :: float64
                del $148binary_subscr.17
165:             c_x = points[vertices_ID[t_index, 2], 0]
                $const158.21 = const(int, 2) :: Literal[int](2)
                $160build_tuple.22 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const158.21, final_2D_robust_multidimarr.py:165)]) :: Tuple(int64, Literal[int](2))
                del $const158.21
                $162binary_subscr.23 = getitem(value=vertices_ID, index=$160build_tuple.22) :: int64
                del $160build_tuple.22
                $const164.24 = const(int, 0) :: Literal[int](0)
                $166build_tuple.25 = build_tuple(items=[Var($162binary_subscr.23, final_2D_robust_multidimarr.py:165), Var($const164.24, final_2D_robust_multidimarr.py:165)]) :: Tuple(int64, Literal[int](0))
                del $const164.24
                del $162binary_subscr.23
                $168binary_subscr.26 = getitem(value=points, index=$166build_tuple.25) :: float64
                del $166build_tuple.25
                c_x = $168binary_subscr.26 :: float64
                del $168binary_subscr.26
166:             c_y = points[vertices_ID[t_index, 2], 1]
                $const178.30 = const(int, 2) :: Literal[int](2)
                $180build_tuple.31 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const178.30, final_2D_robust_multidimarr.py:166)]) :: Tuple(int64, Literal[int](2))
                del t_index
                del $const178.30
                $182binary_subscr.32 = getitem(value=vertices_ID, index=$180build_tuple.31) :: int64
                del vertices_ID
                del $180build_tuple.31
                $const184.33 = const(int, 1) :: Literal[int](1)
                $186build_tuple.34 = build_tuple(items=[Var($182binary_subscr.32, final_2D_robust_multidimarr.py:166), Var($const184.33, final_2D_robust_multidimarr.py:166)]) :: Tuple(int64, Literal[int](1))
                del $const184.33
                del $182binary_subscr.32
                $188binary_subscr.35 = getitem(value=points, index=$186build_tuple.34) :: float64
                del points
                del $186build_tuple.34
                c_y = $188binary_subscr.35 :: float64
                del $188binary_subscr.35
                jump 376
167:         elif gv_idx == 1:
          label 194
            del $108compare_op.2
            $const196.1 = const(int, 1) :: Literal[int](1)
            $198compare_op.2 = gv_idx == $const196.1 :: bool
            del $const196.1
            branch $198compare_op.2, 204, 286
168:             b_x = points[vertices_ID[t_index, 2], 0]
              label 204
                del gv_idx
                del $198compare_op.2
                $const210.3 = const(int, 2) :: Literal[int](2)
                $212build_tuple.4 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const210.3, final_2D_robust_multidimarr.py:168)]) :: Tuple(int64, Literal[int](2))
                del $const210.3
                $214binary_subscr.5 = getitem(value=vertices_ID, index=$212build_tuple.4) :: int64
                del $212build_tuple.4
                $const216.6 = const(int, 0) :: Literal[int](0)
                $218build_tuple.7 = build_tuple(items=[Var($214binary_subscr.5, final_2D_robust_multidimarr.py:168), Var($const216.6, final_2D_robust_multidimarr.py:168)]) :: Tuple(int64, Literal[int](0))
                del $const216.6
                del $214binary_subscr.5
                $220binary_subscr.8 = getitem(value=points, index=$218build_tuple.7) :: float64
                del $218build_tuple.7
                b_x = $220binary_subscr.8 :: float64
                del $220binary_subscr.8
169:             b_y = points[vertices_ID[t_index, 2], 1]
                $const230.12 = const(int, 2) :: Literal[int](2)
                $232build_tuple.13 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const230.12, final_2D_robust_multidimarr.py:169)]) :: Tuple(int64, Literal[int](2))
                del $const230.12
                $234binary_subscr.14 = getitem(value=vertices_ID, index=$232build_tuple.13) :: int64
                del $232build_tuple.13
                $const236.15 = const(int, 1) :: Literal[int](1)
                $238build_tuple.16 = build_tuple(items=[Var($234binary_subscr.14, final_2D_robust_multidimarr.py:169), Var($const236.15, final_2D_robust_multidimarr.py:169)]) :: Tuple(int64, Literal[int](1))
                del $const236.15
                del $234binary_subscr.14
                $240binary_subscr.17 = getitem(value=points, index=$238build_tuple.16) :: float64
                del $238build_tuple.16
                b_y = $240binary_subscr.17 :: float64
                del $240binary_subscr.17
170:             c_x = points[vertices_ID[t_index, 0], 0]
                $const250.21 = const(int, 0) :: Literal[int](0)
                $252build_tuple.22 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const250.21, final_2D_robust_multidimarr.py:170)]) :: Tuple(int64, Literal[int](0))
                del $const250.21
                $254binary_subscr.23 = getitem(value=vertices_ID, index=$252build_tuple.22) :: int64
                del $252build_tuple.22
                $const256.24 = const(int, 0) :: Literal[int](0)
                $258build_tuple.25 = build_tuple(items=[Var($254binary_subscr.23, final_2D_robust_multidimarr.py:170), Var($const256.24, final_2D_robust_multidimarr.py:170)]) :: Tuple(int64, Literal[int](0))
                del $const256.24
                del $254binary_subscr.23
                $260binary_subscr.26 = getitem(value=points, index=$258build_tuple.25) :: float64
                del $258build_tuple.25
                c_x = $260binary_subscr.26 :: float64
                del $260binary_subscr.26
171:             c_y = points[vertices_ID[t_index, 0], 1]
                $const270.30 = const(int, 0) :: Literal[int](0)
                $272build_tuple.31 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const270.30, final_2D_robust_multidimarr.py:171)]) :: Tuple(int64, Literal[int](0))
                del t_index
                del $const270.30
                $274binary_subscr.32 = getitem(value=vertices_ID, index=$272build_tuple.31) :: int64
                del vertices_ID
                del $272build_tuple.31
                $const276.33 = const(int, 1) :: Literal[int](1)
                $278build_tuple.34 = build_tuple(items=[Var($274binary_subscr.32, final_2D_robust_multidimarr.py:171), Var($const276.33, final_2D_robust_multidimarr.py:171)]) :: Tuple(int64, Literal[int](1))
                del $const276.33
                del $274binary_subscr.32
                $280binary_subscr.35 = getitem(value=points, index=$278build_tuple.34) :: float64
                del points
                del $278build_tuple.34
                c_y = $280binary_subscr.35 :: float64
                del $280binary_subscr.35
                jump 376
172:         elif gv_idx == 2:
          label 286
            del $198compare_op.2
            $const288.1 = const(int, 2) :: Literal[int](2)
            $290compare_op.2 = gv_idx == $const288.1 :: bool
            del gv_idx
            del $const288.1
            branch $290compare_op.2, 296, 376
173:             b_x = points[vertices_ID[t_index, 0], 0]
              label 296
                del $290compare_op.2
                $const302.3 = const(int, 0) :: Literal[int](0)
                $304build_tuple.4 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const302.3, final_2D_robust_multidimarr.py:173)]) :: Tuple(int64, Literal[int](0))
                del $const302.3
                $306binary_subscr.5 = getitem(value=vertices_ID, index=$304build_tuple.4) :: int64
                del $304build_tuple.4
                $const308.6 = const(int, 0) :: Literal[int](0)
                $310build_tuple.7 = build_tuple(items=[Var($306binary_subscr.5, final_2D_robust_multidimarr.py:173), Var($const308.6, final_2D_robust_multidimarr.py:173)]) :: Tuple(int64, Literal[int](0))
                del $const308.6
                del $306binary_subscr.5
                $312binary_subscr.8 = getitem(value=points, index=$310build_tuple.7) :: float64
                del $310build_tuple.7
                b_x = $312binary_subscr.8 :: float64
                del $312binary_subscr.8
174:             b_y = points[vertices_ID[t_index, 0], 1]
                $const322.12 = const(int, 0) :: Literal[int](0)
                $324build_tuple.13 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const322.12, final_2D_robust_multidimarr.py:174)]) :: Tuple(int64, Literal[int](0))
                del $const322.12
                $326binary_subscr.14 = getitem(value=vertices_ID, index=$324build_tuple.13) :: int64
                del $324build_tuple.13
                $const328.15 = const(int, 1) :: Literal[int](1)
                $330build_tuple.16 = build_tuple(items=[Var($326binary_subscr.14, final_2D_robust_multidimarr.py:174), Var($const328.15, final_2D_robust_multidimarr.py:174)]) :: Tuple(int64, Literal[int](1))
                del $const328.15
                del $326binary_subscr.14
                $332binary_subscr.17 = getitem(value=points, index=$330build_tuple.16) :: float64
                del $330build_tuple.16
                b_y = $332binary_subscr.17 :: float64
                del $332binary_subscr.17
175:             c_x = points[vertices_ID[t_index, 1], 0]
                $const342.21 = const(int, 1) :: Literal[int](1)
                $344build_tuple.22 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const342.21, final_2D_robust_multidimarr.py:175)]) :: Tuple(int64, Literal[int](1))
                del $const342.21
                $346binary_subscr.23 = getitem(value=vertices_ID, index=$344build_tuple.22) :: int64
                del $344build_tuple.22
                $const348.24 = const(int, 0) :: Literal[int](0)
                $350build_tuple.25 = build_tuple(items=[Var($346binary_subscr.23, final_2D_robust_multidimarr.py:175), Var($const348.24, final_2D_robust_multidimarr.py:175)]) :: Tuple(int64, Literal[int](0))
                del $const348.24
                del $346binary_subscr.23
                $352binary_subscr.26 = getitem(value=points, index=$350build_tuple.25) :: float64
                del $350build_tuple.25
                c_x = $352binary_subscr.26 :: float64
                del $352binary_subscr.26
176:             c_y = points[vertices_ID[t_index, 1], 1]
                $const362.30 = const(int, 1) :: Literal[int](1)
                $364build_tuple.31 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const362.30, final_2D_robust_multidimarr.py:176)]) :: Tuple(int64, Literal[int](1))
                del t_index
                del $const362.30
                $366binary_subscr.32 = getitem(value=vertices_ID, index=$364build_tuple.31) :: int64
                del vertices_ID
                del $364build_tuple.31
                $const368.33 = const(int, 1) :: Literal[int](1)
                $370build_tuple.34 = build_tuple(items=[Var($366binary_subscr.32, final_2D_robust_multidimarr.py:176), Var($const368.33, final_2D_robust_multidimarr.py:176)]) :: Tuple(int64, Literal[int](1))
                del $const368.33
                del $366binary_subscr.32
                $372binary_subscr.35 = getitem(value=points, index=$370build_tuple.34) :: float64
                del points
                del $370build_tuple.34
                c_y = $372binary_subscr.35 :: float64
                del $372binary_subscr.35
177:
178:         det_left = (point_x-c_x)*(b_y-c_y)
            jump 376
          label 376
            del vertices_ID
            del t_index
            del points
            del $290compare_op.2
            $380binary_subtract.2 = point_x - c_x :: float64
            $386binary_subtract.5 = b_y - c_y :: float64
            $388binary_multiply.6 = $380binary_subtract.2 * $386binary_subtract.5 :: float64
            del $386binary_subtract.5
            del $380binary_subtract.2
            det_left = $388binary_multiply.6 :: float64
            del $388binary_multiply.6
179:         det_right = (point_y-c_y)*(b_x-c_x)
            $396binary_subtract.9 = point_y - c_y :: float64
            $402binary_subtract.12 = b_x - c_x :: float64
            $404binary_multiply.13 = $396binary_subtract.9 * $402binary_subtract.12 :: float64
            del $402binary_subtract.12
            del $396binary_subtract.9
            det_right = $404binary_multiply.13 :: float64
            del $404binary_multiply.13
180:         det = det_left - det_right
            $412binary_subtract.16 = det_left - det_right :: float64
            det = $412binary_subtract.16 :: float64
            del $412binary_subtract.16
181:         num = 0
            $const416.17 = const(int, 0) :: Literal[int](0)
            num = $const416.17 :: int64
            del $const416.17
182:         if np.abs(det) <= static_filter_o2d:
            $420load_global.18 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
            $422load_method.19 = getattr(value=$420load_global.18, attr=abs) :: Function(<ufunc 'absolute'>)
            del $420load_global.18
            $426call_method.21 = call $422load_method.19(det, func=$422load_method.19, args=[Var(det, final_2D_robust_multidimarr.py:180)], kws=(), vararg=None) :: (float64,) -> float64
            del $422load_method.19
            $430compare_op.23 = $426call_method.21 <= static_filter_o2d :: bool
            del static_filter_o2d
            del $426call_method.21
            branch $430compare_op.23, 436, 502
183:             detsum = np.abs(det_left) + np.abs(det_right)
              label 436
                del $430compare_op.23
                $436load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                $438load_method.1 = getattr(value=$436load_global.0, attr=abs) :: Function(<ufunc 'absolute'>)
                del $436load_global.0
                $442call_method.3 = call $438load_method.1(det_left, func=$438load_method.1, args=[Var(det_left, final_2D_robust_multidimarr.py:178)], kws=(), vararg=None) :: (float64,) -> float64
                del det_left
                del $438load_method.1
                $444load_global.4 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                $446load_method.5 = getattr(value=$444load_global.4, attr=abs) :: Function(<ufunc 'absolute'>)
                del $444load_global.4
                $450call_method.7 = call $446load_method.5(det_right, func=$446load_method.5, args=[Var(det_right, final_2D_robust_multidimarr.py:179)], kws=(), vararg=None) :: (float64,) -> float64
                del det_right
                del $446load_method.5
                $452binary_add.8 = $442call_method.3 + $450call_method.7 :: float64
                del $450call_method.7
                del $442call_method.3
                detsum = $452binary_add.8 :: float64
                del $452binary_add.8
184:             det, num = orient2d(
                $456load_global.9 = global(orient2d: CPUDispatcher(<function orient2d at 0x7f51d4472f80>)) :: type(CPUDispatcher(<function orient2d at 0x7f51d4472f80>))
185:                 point_x, point_y, b_x, b_y, c_x, c_y, splitter, B, C1, C2, D,
186:                 u, ccwerrboundA, ccwerrboundB, ccwerrboundC, resulterrbound,
187:                 det, detsum)
                    $494call_function.28 = call $456load_global.9(point_x, point_y, b_x, b_y, c_x, c_y, splitter, B, C1, C2, D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC, resulterrbound, det, detsum, func=$456load_global.9, args=[Var(point_x, final_2D_robust_multidimarr.py:157), Var(point_y, final_2D_robust_multidimarr.py:158), Var(b_x, final_2D_robust_multidimarr.py:163), Var(b_y, final_2D_robust_multidimarr.py:164), Var(c_x, final_2D_robust_multidimarr.py:165), Var(c_y, final_2D_robust_multidimarr.py:166), Var(splitter, final_2D_robust_multidimarr.py:149), Var(B, final_2D_robust_multidimarr.py:149), Var(C1, final_2D_robust_multidimarr.py:149), Var(C2, final_2D_robust_multidimarr.py:149), Var(D, final_2D_robust_multidimarr.py:149), Var(u, final_2D_robust_multidimarr.py:149), Var(ccwerrboundA, final_2D_robust_multidimarr.py:149), Var(ccwerrboundB, final_2D_robust_multidimarr.py:149), Var(ccwerrboundC, final_2D_robust_multidimarr.py:149), Var(resulterrbound, final_2D_robust_multidimarr.py:149), Var(det, final_2D_robust_multidimarr.py:180), Var(detsum, final_2D_robust_multidimarr.py:183)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64) -> Tuple(float64, int64)
                    del u
                    del splitter
                    del resulterrbound
                    del detsum
                    del ccwerrboundC
                    del ccwerrboundB
                    del ccwerrboundA
                    del D
                    del C2
                    del C1
                    del B
                    del $456load_global.9
                    $496unpack_sequence.31 = exhaust_iter(value=$494call_function.28, count=2) :: Tuple(float64, int64)
                    del $494call_function.28
                    $496unpack_sequence.29 = static_getitem(value=$496unpack_sequence.31, index=0, index_var=None) :: float64
                    $496unpack_sequence.30 = static_getitem(value=$496unpack_sequence.31, index=1, index_var=None) :: int64
                    del $496unpack_sequence.31
                    det = $496unpack_sequence.29 :: float64
                    del $496unpack_sequence.29
                    num = $496unpack_sequence.30 :: int64
                    del $496unpack_sequence.30
188:         orient2d_count[num] += 1
            jump 502
          label 502
            del u
            del splitter
            del resulterrbound
            del det_right
            del det_left
            del ccwerrboundC
            del ccwerrboundB
            del ccwerrboundA
            del D
            del C2
            del C1
            del B
            del $430compare_op.23
            $508binary_subscr.4 = getitem(value=orient2d_count, index=num) :: int64
            $const510.5 = const(int, 1) :: Literal[int](1)
            $512inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=$508binary_subscr.4, rhs=$const510.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const510.5
            del $508binary_subscr.4
            orient2d_count[num] = $512inplace_add.6 :: (array(int64, 1d, C), int64, int64) -> none
            del orient2d_count
            del num
            del $512inplace_add.6
189:
190:         if det > 0:
            $const520.8 = const(int, 0) :: Literal[int](0)
            $522compare_op.9 = det > $const520.8 :: bool
            del $const520.8
            branch $522compare_op.9, 528, 532
191:             return True
              label 528
                del point_y
                del point_x
                del det
                del c_y
                del c_x
                del b_y
                del b_x
                del $522compare_op.9
                $const528.0 = const(bool, True) :: bool
                $530return_value.1 = cast(value=$const528.0) :: bool
                del $const528.0
                return $530return_value.1
192:         elif det == 0:
          label 532
            del $522compare_op.9
            $const534.1 = const(int, 0) :: Literal[int](0)
            $536compare_op.2 = det == $const534.1 :: bool
            del det
            del $const534.1
            branch $536compare_op.2, 542, 612
193:             m1_x = point_x - b_x
              label 542
                del $536compare_op.2
                $546binary_subtract.2 = point_x - b_x :: float64
                del b_x
                m1_x = $546binary_subtract.2 :: float64
                del $546binary_subtract.2
194:             m2_x = c_x - point_x
                $554binary_subtract.5 = c_x - point_x :: float64
                del point_x
                del c_x
                m2_x = $554binary_subtract.5 :: float64
                del $554binary_subtract.5
195:             m1_y = point_y - b_y
                $562binary_subtract.8 = point_y - b_y :: float64
                del b_y
                m1_y = $562binary_subtract.8 :: float64
                del $562binary_subtract.8
196:             m2_y = c_y - point_y
                $570binary_subtract.11 = c_y - point_y :: float64
                del point_y
                del c_y
                m2_y = $570binary_subtract.11 :: float64
                del $570binary_subtract.11
197:             if m1_x*m2_x >= 0 and m1_y*m2_y >= 0:
                $578binary_multiply.14 = m1_x * m2_x :: float64
                del m2_x
                del m1_x
                $const580.15 = const(int, 0) :: Literal[int](0)
                $582compare_op.16 = $578binary_multiply.14 >= $const580.15 :: bool
                del $const580.15
                del $578binary_multiply.14
                branch $582compare_op.16, 588, 606
              label 588
                del $582compare_op.16
                $592binary_multiply.2 = m1_y * m2_y :: float64
                del m2_y
                del m1_y
                $const594.3 = const(int, 0) :: Literal[int](0)
                $596compare_op.4 = $592binary_multiply.2 >= $const594.3 :: bool
                del $const594.3
                del $592binary_multiply.2
                branch $596compare_op.4, 602, 606
198:                 return True
                  label 602
                    del $596compare_op.4
                    $const602.0 = const(bool, True) :: bool
                    $604return_value.1 = cast(value=$const602.0) :: bool
                    del $const602.0
                    return $604return_value.1
199:             else:
200:                 return False
                  label 606
                    del m2_y
                    del m1_y
                    del $596compare_op.4
                    del $582compare_op.16
                    $const606.0 = const(bool, False) :: bool
                    $608return_value.1 = cast(value=$const606.0) :: bool
                    del $const606.0
                    return $608return_value.1
201:         else:
202:             return False
              label 612
                del point_y
                del point_x
                del c_y
                del c_x
                del b_y
                del b_x
                del $536compare_op.2
                $const612.0 = const(bool, False) :: bool
                $614return_value.1 = cast(value=$const612.0) :: bool
                del $const612.0
                return $614return_value.1
203:     else:
204:         # t_index is a real triangle
205:         a_x = points[vertices_ID[t_index, 0], 0]
          label 620
            del static_filter_o2d
            del orient2d_count
            del gv_idx
            del ccwerrboundC
            del ccwerrboundB
            del ccwerrboundA
            del D
            del C2
            del C1
            del B
            del $98compare_op.12
            $const626.3 = const(int, 0) :: Literal[int](0)
            $628build_tuple.4 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const626.3, final_2D_robust_multidimarr.py:205)]) :: Tuple(int64, Literal[int](0))
            del $const626.3
            $630binary_subscr.5 = getitem(value=vertices_ID, index=$628build_tuple.4) :: int64
            del $628build_tuple.4
            $const632.6 = const(int, 0) :: Literal[int](0)
            $634build_tuple.7 = build_tuple(items=[Var($630binary_subscr.5, final_2D_robust_multidimarr.py:205), Var($const632.6, final_2D_robust_multidimarr.py:205)]) :: Tuple(int64, Literal[int](0))
            del $const632.6
            del $630binary_subscr.5
            $636binary_subscr.8 = getitem(value=points, index=$634build_tuple.7) :: float64
            del $634build_tuple.7
            a_x = $636binary_subscr.8 :: float64
            del $636binary_subscr.8
206:         a_y = points[vertices_ID[t_index, 0], 1]
            $const646.12 = const(int, 0) :: Literal[int](0)
            $648build_tuple.13 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const646.12, final_2D_robust_multidimarr.py:206)]) :: Tuple(int64, Literal[int](0))
            del $const646.12
            $650binary_subscr.14 = getitem(value=vertices_ID, index=$648build_tuple.13) :: int64
            del $648build_tuple.13
            $const652.15 = const(int, 1) :: Literal[int](1)
            $654build_tuple.16 = build_tuple(items=[Var($650binary_subscr.14, final_2D_robust_multidimarr.py:206), Var($const652.15, final_2D_robust_multidimarr.py:206)]) :: Tuple(int64, Literal[int](1))
            del $const652.15
            del $650binary_subscr.14
            $656binary_subscr.17 = getitem(value=points, index=$654build_tuple.16) :: float64
            del $654build_tuple.16
            a_y = $656binary_subscr.17 :: float64
            del $656binary_subscr.17
207:         b_x = points[vertices_ID[t_index, 1], 0]
            $const666.21 = const(int, 1) :: Literal[int](1)
            $668build_tuple.22 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const666.21, final_2D_robust_multidimarr.py:207)]) :: Tuple(int64, Literal[int](1))
            del $const666.21
            $670binary_subscr.23 = getitem(value=vertices_ID, index=$668build_tuple.22) :: int64
            del $668build_tuple.22
            $const672.24 = const(int, 0) :: Literal[int](0)
            $674build_tuple.25 = build_tuple(items=[Var($670binary_subscr.23, final_2D_robust_multidimarr.py:207), Var($const672.24, final_2D_robust_multidimarr.py:207)]) :: Tuple(int64, Literal[int](0))
            del $const672.24
            del $670binary_subscr.23
            $676binary_subscr.26 = getitem(value=points, index=$674build_tuple.25) :: float64
            del $674build_tuple.25
            b_x = $676binary_subscr.26 :: float64
            del $676binary_subscr.26
208:         b_y = points[vertices_ID[t_index, 1], 1]
            $const686.30 = const(int, 1) :: Literal[int](1)
            $688build_tuple.31 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const686.30, final_2D_robust_multidimarr.py:208)]) :: Tuple(int64, Literal[int](1))
            del $const686.30
            $690binary_subscr.32 = getitem(value=vertices_ID, index=$688build_tuple.31) :: int64
            del $688build_tuple.31
            $const692.33 = const(int, 1) :: Literal[int](1)
            $694build_tuple.34 = build_tuple(items=[Var($690binary_subscr.32, final_2D_robust_multidimarr.py:208), Var($const692.33, final_2D_robust_multidimarr.py:208)]) :: Tuple(int64, Literal[int](1))
            del $const692.33
            del $690binary_subscr.32
            $696binary_subscr.35 = getitem(value=points, index=$694build_tuple.34) :: float64
            del $694build_tuple.34
            b_y = $696binary_subscr.35 :: float64
            del $696binary_subscr.35
209:         c_x = points[vertices_ID[t_index, 2], 0]
            $const706.39 = const(int, 2) :: Literal[int](2)
            $708build_tuple.40 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const706.39, final_2D_robust_multidimarr.py:209)]) :: Tuple(int64, Literal[int](2))
            del $const706.39
            $710binary_subscr.41 = getitem(value=vertices_ID, index=$708build_tuple.40) :: int64
            del $708build_tuple.40
            $const712.42 = const(int, 0) :: Literal[int](0)
            $714build_tuple.43 = build_tuple(items=[Var($710binary_subscr.41, final_2D_robust_multidimarr.py:209), Var($const712.42, final_2D_robust_multidimarr.py:209)]) :: Tuple(int64, Literal[int](0))
            del $const712.42
            del $710binary_subscr.41
            $716binary_subscr.44 = getitem(value=points, index=$714build_tuple.43) :: float64
            del $714build_tuple.43
            c_x = $716binary_subscr.44 :: float64
            del $716binary_subscr.44
210:         c_y = points[vertices_ID[t_index, 2], 1]
            $const726.48 = const(int, 2) :: Literal[int](2)
            $728build_tuple.49 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:149), Var($const726.48, final_2D_robust_multidimarr.py:210)]) :: Tuple(int64, Literal[int](2))
            del t_index
            del $const726.48
            $730binary_subscr.50 = getitem(value=vertices_ID, index=$728build_tuple.49) :: int64
            del vertices_ID
            del $728build_tuple.49
            $const732.51 = const(int, 1) :: Literal[int](1)
            $734build_tuple.52 = build_tuple(items=[Var($730binary_subscr.50, final_2D_robust_multidimarr.py:210), Var($const732.51, final_2D_robust_multidimarr.py:210)]) :: Tuple(int64, Literal[int](1))
            del $const732.51
            del $730binary_subscr.50
            $736binary_subscr.53 = getitem(value=points, index=$734build_tuple.52) :: float64
            del points
            del $734build_tuple.52
            c_y = $736binary_subscr.53 :: float64
            del $736binary_subscr.53
211:
212:         adx = a_x - point_x
            $744binary_subtract.56 = a_x - point_x :: float64
            adx = $744binary_subtract.56 :: float64
            del $744binary_subtract.56
213:         bdx = b_x - point_x
            $752binary_subtract.59 = b_x - point_x :: float64
            bdx = $752binary_subtract.59 :: float64
            del $752binary_subtract.59
214:         cdx = c_x - point_x
            $760binary_subtract.62 = c_x - point_x :: float64
            cdx = $760binary_subtract.62 :: float64
            del $760binary_subtract.62
215:         ady = a_y - point_y
            $768binary_subtract.65 = a_y - point_y :: float64
            ady = $768binary_subtract.65 :: float64
            del $768binary_subtract.65
216:         bdy = b_y - point_y
            $776binary_subtract.68 = b_y - point_y :: float64
            bdy = $776binary_subtract.68 :: float64
            del $776binary_subtract.68
217:         cdy = c_y - point_y
            $784binary_subtract.71 = c_y - point_y :: float64
            cdy = $784binary_subtract.71 :: float64
            del $784binary_subtract.71
218:
219:         bdxcdy = bdx * cdy
            $792binary_multiply.74 = bdx * cdy :: float64
            bdxcdy = $792binary_multiply.74 :: float64
            del $792binary_multiply.74
220:         cdxbdy = cdx * bdy
            $800binary_multiply.77 = cdx * bdy :: float64
            cdxbdy = $800binary_multiply.77 :: float64
            del $800binary_multiply.77
221:         alift = adx * adx + ady * ady
            $808binary_multiply.80 = adx * adx :: float64
            $814binary_multiply.83 = ady * ady :: float64
            $816binary_add.84 = $808binary_multiply.80 + $814binary_multiply.83 :: float64
            del $814binary_multiply.83
            del $808binary_multiply.80
            alift = $816binary_add.84 :: float64
            del $816binary_add.84
222:
223:         cdxady = cdx * ady
            $824binary_multiply.87 = cdx * ady :: float64
            cdxady = $824binary_multiply.87 :: float64
            del $824binary_multiply.87
224:         adxcdy = adx * cdy
            $832binary_multiply.90 = adx * cdy :: float64
            adxcdy = $832binary_multiply.90 :: float64
            del $832binary_multiply.90
225:         blift = bdx * bdx + bdy * bdy
            $840binary_multiply.93 = bdx * bdx :: float64
            $846binary_multiply.96 = bdy * bdy :: float64
            $848binary_add.97 = $840binary_multiply.93 + $846binary_multiply.96 :: float64
            del $846binary_multiply.96
            del $840binary_multiply.93
            blift = $848binary_add.97 :: float64
            del $848binary_add.97
226:
227:         adxbdy = adx * bdy
            $856binary_multiply.100 = adx * bdy :: float64
            del bdy
            del adx
            adxbdy = $856binary_multiply.100 :: float64
            del $856binary_multiply.100
228:         bdxady = bdx * ady
            $864binary_multiply.103 = bdx * ady :: float64
            del bdx
            del ady
            bdxady = $864binary_multiply.103 :: float64
            del $864binary_multiply.103
229:         clift = cdx * cdx + cdy * cdy
            $872binary_multiply.106 = cdx * cdx :: float64
            del cdx
            $878binary_multiply.109 = cdy * cdy :: float64
            del cdy
            $880binary_add.110 = $872binary_multiply.106 + $878binary_multiply.109 :: float64
            del $878binary_multiply.109
            del $872binary_multiply.106
            clift = $880binary_add.110 :: float64
            del $880binary_add.110
230:
231:         det = alift * (bdxcdy - cdxbdy) + \
232:               blift * (cdxady - adxcdy) + \
                  $890binary_subtract.114 = bdxcdy - cdxbdy :: float64
                  $892binary_multiply.115 = alift * $890binary_subtract.114 :: float64
                  del $890binary_subtract.114
                  $900binary_subtract.119 = cdxady - adxcdy :: float64
                  $902binary_multiply.120 = blift * $900binary_subtract.119 :: float64
                  del $900binary_subtract.119
                  $904binary_add.121 = $892binary_multiply.115 + $902binary_multiply.120 :: float64
                  del $902binary_multiply.120
                  del $892binary_multiply.115
233:               clift * (adxbdy - bdxady)
                  $912binary_subtract.125 = adxbdy - bdxady :: float64
                  $914binary_multiply.126 = clift * $912binary_subtract.125 :: float64
                  del $912binary_subtract.125
                  $916binary_add.127 = $904binary_add.121 + $914binary_multiply.126 :: float64
                  del $914binary_multiply.126
                  del $904binary_add.121
                  det = $916binary_add.127 :: float64
                  del $916binary_add.127
234:         num = 0
            $const920.128 = const(int, 0) :: Literal[int](0)
            num = $const920.128 :: int64
            del $const920.128
235:         if np.abs(det) <= static_filter_i2d:
            $924load_global.129 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
            $926load_method.130 = getattr(value=$924load_global.129, attr=abs) :: Function(<ufunc 'absolute'>)
            del $924load_global.129
            $930call_method.132 = call $926load_method.130(det, func=$926load_method.130, args=[Var(det, final_2D_robust_multidimarr.py:180)], kws=(), vararg=None) :: (float64,) -> float64
            del $926load_method.130
            $934compare_op.134 = $930call_method.132 <= static_filter_i2d :: bool
            del static_filter_i2d
            del $930call_method.132
            branch $934compare_op.134, 940, 1192
236:             permanent = (np.abs(bdxcdy) + np.abs(cdxbdy)) * alift + \
237:                         (np.abs(cdxady) + np.abs(adxcdy)) * blift + \
                          label 940
                            del $934compare_op.134
                            $940load_global.0 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $942load_method.1 = getattr(value=$940load_global.0, attr=abs) :: Function(<ufunc 'absolute'>)
                            del $940load_global.0
                            $946call_method.3 = call $942load_method.1(bdxcdy, func=$942load_method.1, args=[Var(bdxcdy, final_2D_robust_multidimarr.py:219)], kws=(), vararg=None) :: (float64,) -> float64
                            del bdxcdy
                            del $942load_method.1
                            $948load_global.4 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $950load_method.5 = getattr(value=$948load_global.4, attr=abs) :: Function(<ufunc 'absolute'>)
                            del $948load_global.4
                            $954call_method.7 = call $950load_method.5(cdxbdy, func=$950load_method.5, args=[Var(cdxbdy, final_2D_robust_multidimarr.py:220)], kws=(), vararg=None) :: (float64,) -> float64
                            del cdxbdy
                            del $950load_method.5
                            $956binary_add.8 = $946call_method.3 + $954call_method.7 :: float64
                            del $954call_method.7
                            del $946call_method.3
                            $960binary_multiply.10 = $956binary_add.8 * alift :: float64
                            del alift
                            del $956binary_add.8
                            $962load_global.11 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $964load_method.12 = getattr(value=$962load_global.11, attr=abs) :: Function(<ufunc 'absolute'>)
                            del $962load_global.11
                            $968call_method.14 = call $964load_method.12(cdxady, func=$964load_method.12, args=[Var(cdxady, final_2D_robust_multidimarr.py:223)], kws=(), vararg=None) :: (float64,) -> float64
                            del cdxady
                            del $964load_method.12
                            $970load_global.15 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $972load_method.16 = getattr(value=$970load_global.15, attr=abs) :: Function(<ufunc 'absolute'>)
                            del $970load_global.15
                            $976call_method.18 = call $972load_method.16(adxcdy, func=$972load_method.16, args=[Var(adxcdy, final_2D_robust_multidimarr.py:224)], kws=(), vararg=None) :: (float64,) -> float64
                            del adxcdy
                            del $972load_method.16
                            $978binary_add.19 = $968call_method.14 + $976call_method.18 :: float64
                            del $976call_method.18
                            del $968call_method.14
                            $982binary_multiply.21 = $978binary_add.19 * blift :: float64
                            del blift
                            del $978binary_add.19
                            $984binary_add.22 = $960binary_multiply.10 + $982binary_multiply.21 :: float64
                            del $982binary_multiply.21
                            del $960binary_multiply.10
238:                         (np.abs(adxbdy) + np.abs(bdxady)) * clift
                            $986load_global.23 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $988load_method.24 = getattr(value=$986load_global.23, attr=abs) :: Function(<ufunc 'absolute'>)
                            del $986load_global.23
                            $992call_method.26 = call $988load_method.24(adxbdy, func=$988load_method.24, args=[Var(adxbdy, final_2D_robust_multidimarr.py:227)], kws=(), vararg=None) :: (float64,) -> float64
                            del adxbdy
                            del $988load_method.24
                            $994load_global.27 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $996load_method.28 = getattr(value=$994load_global.27, attr=abs) :: Function(<ufunc 'absolute'>)
                            del $994load_global.27
                            $1000call_method.30 = call $996load_method.28(bdxady, func=$996load_method.28, args=[Var(bdxady, final_2D_robust_multidimarr.py:228)], kws=(), vararg=None) :: (float64,) -> float64
                            del bdxady
                            del $996load_method.28
                            $1002binary_add.31 = $992call_method.26 + $1000call_method.30 :: float64
                            del $992call_method.26
                            del $1000call_method.30
                            $1006binary_multiply.33 = $1002binary_add.31 * clift :: float64
                            del clift
                            del $1002binary_add.31
                            $1008binary_add.34 = $984binary_add.22 + $1006binary_multiply.33 :: float64
                            del $984binary_add.22
                            del $1006binary_multiply.33
                            permanent = $1008binary_add.34 :: float64
                            del $1008binary_add.34
239:             # errbound = iccerrboundA * permanent
240:             # if np.abs(det) > errbound:
241:             # num = 1
242:             # else:
243:             det, num = incircle(
                $1012load_global.35 = global(incircle: CPUDispatcher(<function incircle at 0x7f51d4478dd0>)) :: type(CPUDispatcher(<function incircle at 0x7f51d4478dd0>))
244:                 a_x, a_y, b_x, b_y, c_x, c_y, point_x, point_y, bc, ca, ab,
245:                 axbc, axxbc, aybc, ayybc, adet, bxca, bxxca, byca, byyca, bdet,
246:                 cxab, cxxab, cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb, cc,
247:                 u, v, temp8, temp16a, temp16b, temp16c, temp32a, temp32b,
248:                 temp48, temp64, axtbb, axtcc, aytbb, aytcc, bxtaa, bxtcc,
249:                 bytaa, bytcc, cxtaa, cxtbb, cytaa, cytbb, axtbc, aytbc, bxtca,
250:                 bytca, cxtab, cytab, axtbct, aytbct, bxtcat, bytcat, cxtabt,
251:                 cytabt, axtbctt, aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt,
252:                 abt, bct, cat, abtt, bctt, catt, splitter, iccerrboundA,
253:                 iccerrboundB, iccerrboundC, resulterrbound, det, permanent)
                    $1184call_function.121 = call $1012load_global.35(a_x, a_y, b_x, b_y, c_x, c_y, point_x, point_y, bc, ca, ab, axbc, axxbc, aybc, ayybc, adet, bxca, bxxca, byca, byyca, bdet, cxab, cxxab, cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb, cc, u, v, temp8, temp16a, temp16b, temp16c, temp32a, temp32b, temp48, temp64, axtbb, axtcc, aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb, cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab, axtbct, aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt, aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct, cat, abtt, bctt, catt, splitter, iccerrboundA, iccerrboundB, iccerrboundC, resulterrbound, det, permanent, func=$1012load_global.35, args=[Var(a_x, final_2D_robust_multidimarr.py:205), Var(a_y, final_2D_robust_multidimarr.py:206), Var(b_x, final_2D_robust_multidimarr.py:163), Var(b_y, final_2D_robust_multidimarr.py:164), Var(c_x, final_2D_robust_multidimarr.py:165), Var(c_y, final_2D_robust_multidimarr.py:166), Var(point_x, final_2D_robust_multidimarr.py:157), Var(point_y, final_2D_robust_multidimarr.py:158), Var(bc, final_2D_robust_multidimarr.py:149), Var(ca, final_2D_robust_multidimarr.py:149), Var(ab, final_2D_robust_multidimarr.py:149), Var(axbc, final_2D_robust_multidimarr.py:149), Var(axxbc, final_2D_robust_multidimarr.py:149), Var(aybc, final_2D_robust_multidimarr.py:149), Var(ayybc, final_2D_robust_multidimarr.py:149), Var(adet, final_2D_robust_multidimarr.py:149), Var(bxca, final_2D_robust_multidimarr.py:149), Var(bxxca, final_2D_robust_multidimarr.py:149), Var(byca, final_2D_robust_multidimarr.py:149), Var(byyca, final_2D_robust_multidimarr.py:149), Var(bdet, final_2D_robust_multidimarr.py:149), Var(cxab, final_2D_robust_multidimarr.py:149), Var(cxxab, final_2D_robust_multidimarr.py:149), Var(cyab, final_2D_robust_multidimarr.py:149), Var(cyyab, final_2D_robust_multidimarr.py:149), Var(cdet, final_2D_robust_multidimarr.py:149), Var(abdet, final_2D_robust_multidimarr.py:149), Var(fin1, final_2D_robust_multidimarr.py:149), Var(fin2, final_2D_robust_multidimarr.py:149), Var(aa, final_2D_robust_multidimarr.py:149), Var(bb, final_2D_robust_multidimarr.py:149), Var(cc, final_2D_robust_multidimarr.py:149), Var(u, final_2D_robust_multidimarr.py:149), Var(v, final_2D_robust_multidimarr.py:149), Var(temp8, final_2D_robust_multidimarr.py:149), Var(temp16a, final_2D_robust_multidimarr.py:149), Var(temp16b, final_2D_robust_multidimarr.py:149), Var(temp16c, final_2D_robust_multidimarr.py:149), Var(temp32a, final_2D_robust_multidimarr.py:149), Var(temp32b, final_2D_robust_multidimarr.py:149), Var(temp48, final_2D_robust_multidimarr.py:149), Var(temp64, final_2D_robust_multidimarr.py:149), Var(axtbb, final_2D_robust_multidimarr.py:149), Var(axtcc, final_2D_robust_multidimarr.py:149), Var(aytbb, final_2D_robust_multidimarr.py:149), Var(aytcc, final_2D_robust_multidimarr.py:149), Var(bxtaa, final_2D_robust_multidimarr.py:149), Var(bxtcc, final_2D_robust_multidimarr.py:149), Var(bytaa, final_2D_robust_multidimarr.py:149), Var(bytcc, final_2D_robust_multidimarr.py:149), Var(cxtaa, final_2D_robust_multidimarr.py:149), Var(cxtbb, final_2D_robust_multidimarr.py:149), Var(cytaa, final_2D_robust_multidimarr.py:149), Var(cytbb, final_2D_robust_multidimarr.py:149), Var(axtbc, final_2D_robust_multidimarr.py:149), Var(aytbc, final_2D_robust_multidimarr.py:149), Var(bxtca, final_2D_robust_multidimarr.py:149), Var(bytca, final_2D_robust_multidimarr.py:149), Var(cxtab, final_2D_robust_multidimarr.py:149), Var(cytab, final_2D_robust_multidimarr.py:149), Var(axtbct, final_2D_robust_multidimarr.py:149), Var(aytbct, final_2D_robust_multidimarr.py:149), Var(bxtcat, final_2D_robust_multidimarr.py:149), Var(bytcat, final_2D_robust_multidimarr.py:149), Var(cxtabt, final_2D_robust_multidimarr.py:149), Var(cytabt, final_2D_robust_multidimarr.py:149), Var(axtbctt, final_2D_robust_multidimarr.py:149), Var(aytbctt, final_2D_robust_multidimarr.py:149), Var(bxtcatt, final_2D_robust_multidimarr.py:149), Var(bytcatt, final_2D_robust_multidimarr.py:149), Var(cxtabtt, final_2D_robust_multidimarr.py:149), Var(cytabtt, final_2D_robust_multidimarr.py:149), Var(abt, final_2D_robust_multidimarr.py:149), Var(bct, final_2D_robust_multidimarr.py:149), Var(cat, final_2D_robust_multidimarr.py:149), Var(abtt, final_2D_robust_multidimarr.py:149), Var(bctt, final_2D_robust_multidimarr.py:149), Var(catt, final_2D_robust_multidimarr.py:149), Var(splitter, final_2D_robust_multidimarr.py:149), Var(iccerrboundA, final_2D_robust_multidimarr.py:149), Var(iccerrboundB, final_2D_robust_multidimarr.py:149), Var(iccerrboundC, final_2D_robust_multidimarr.py:149), Var(resulterrbound, final_2D_robust_multidimarr.py:149), Var(det, final_2D_robust_multidimarr.py:180), Var(permanent, final_2D_robust_multidimarr.py:238)], kws=(), vararg=None) :: (float64, float64, float64, float64, float64, float64, float64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64, float64) -> Tuple(float64, int64)
                    del v
                    del u
                    del temp8
                    del temp64
                    del temp48
                    del temp32b
                    del temp32a
                    del temp16c
                    del temp16b
                    del temp16a
                    del splitter
                    del resulterrbound
                    del point_y
                    del point_x
                    del permanent
                    del iccerrboundC
                    del iccerrboundB
                    del iccerrboundA
                    del fin2
                    del fin1
                    del cyyab
                    del cytbb
                    del cytabtt
                    del cytabt
                    del cytab
                    del cytaa
                    del cyab
                    del cxxab
                    del cxtbb
                    del cxtabtt
                    del cxtabt
                    del cxtab
                    del cxtaa
                    del cxab
                    del cdet
                    del cc
                    del catt
                    del cat
                    del ca
                    del c_y
                    del c_x
                    del byyca
                    del bytcc
                    del bytcatt
                    del bytcat
                    del bytca
                    del bytaa
                    del byca
                    del bxxca
                    del bxtcc
                    del bxtcatt
                    del bxtcat
                    del bxtca
                    del bxtaa
                    del bxca
                    del bdet
                    del bctt
                    del bct
                    del bc
                    del bb
                    del b_y
                    del b_x
                    del ayybc
                    del aytcc
                    del aytbctt
                    del aytbct
                    del aytbc
                    del aytbb
                    del aybc
                    del axxbc
                    del axtcc
                    del axtbctt
                    del axtbct
                    del axtbc
                    del axtbb
                    del axbc
                    del adet
                    del abtt
                    del abt
                    del abdet
                    del ab
                    del aa
                    del a_y
                    del a_x
                    del $1012load_global.35
                    $1186unpack_sequence.124 = exhaust_iter(value=$1184call_function.121, count=2) :: Tuple(float64, int64)
                    del $1184call_function.121
                    $1186unpack_sequence.122 = static_getitem(value=$1186unpack_sequence.124, index=0, index_var=None) :: float64
                    $1186unpack_sequence.123 = static_getitem(value=$1186unpack_sequence.124, index=1, index_var=None) :: int64
                    del $1186unpack_sequence.124
                    det = $1186unpack_sequence.122 :: float64
                    del $1186unpack_sequence.122
                    num = $1186unpack_sequence.123 :: int64
                    del $1186unpack_sequence.123
254:                 # det, num = incircleadapt(
255:                 # a_x, a_y, b_x, b_y, c_x, c_y, point_x, point_y, permanent,
256:                 # bc, ca, ab, axbc, axxbc, aybc, ayybc, adet, bxca, bxxca,
257:                 # byca, byyca, bdet, cxab, cxxab, cyab, cyyab, cdet, abdet,
258:                 # fin1, fin2, aa, bb, cc, u, v, temp8, temp16a, temp16b,
259:                 # temp16c, temp32a, temp32b, temp48, temp64, axtbb, axtcc,
260:                 # aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb,
261:                 # cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab,
262:                 # axtbct, aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt,
263:                 # aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct, cat,
264:                 # abtt, bctt, catt, splitter, iccerrboundB, iccerrboundC,
265:                 # resulterrbound)
266:         incircle_count[num] += 1
            jump 1192
          label 1192
            del v
            del u
            del temp8
            del temp64
            del temp48
            del temp32b
            del temp32a
            del temp16c
            del temp16b
            del temp16a
            del splitter
            del resulterrbound
            del point_y
            del point_x
            del iccerrboundC
            del iccerrboundB
            del iccerrboundA
            del fin2
            del fin1
            del cyyab
            del cytbb
            del cytabtt
            del cytabt
            del cytab
            del cytaa
            del cyab
            del cxxab
            del cxtbb
            del cxtabtt
            del cxtabt
            del cxtab
            del cxtaa
            del cxab
            del clift
            del cdxbdy
            del cdxady
            del cdet
            del cc
            del catt
            del cat
            del ca
            del c_y
            del c_x
            del byyca
            del bytcc
            del bytcatt
            del bytcat
            del bytca
            del bytaa
            del byca
            del bxxca
            del bxtcc
            del bxtcatt
            del bxtcat
            del bxtca
            del bxtaa
            del bxca
            del blift
            del bdxcdy
            del bdxady
            del bdet
            del bctt
            del bct
            del bc
            del bb
            del b_y
            del b_x
            del ayybc
            del aytcc
            del aytbctt
            del aytbct
            del aytbc
            del aytbb
            del aybc
            del axxbc
            del axtcc
            del axtbctt
            del axtbct
            del axtbc
            del axtbb
            del axbc
            del alift
            del adxcdy
            del adxbdy
            del adet
            del abtt
            del abt
            del abdet
            del ab
            del aa
            del a_y
            del a_x
            del $934compare_op.134
            $1198binary_subscr.4 = getitem(value=incircle_count, index=num) :: int64
            $const1200.5 = const(int, 1) :: Literal[int](1)
            $1202inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=$1198binary_subscr.4, rhs=$const1200.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const1200.5
            del $1198binary_subscr.4
            incircle_count[num] = $1202inplace_add.6 :: (array(int64, 1d, C), int64, int64) -> none
            del num
            del incircle_count
            del $1202inplace_add.6
267:
268:         if det >= 0.0:
            $const1210.8 = const(float, 0.0) :: float64
            $1212compare_op.9 = det >= $const1210.8 :: bool
            del det
            del $const1210.8
            branch $1212compare_op.9, 1218, 1222
269:             return True
              label 1218
                del $1212compare_op.9
                $const1218.0 = const(bool, True) :: bool
                $1220return_value.1 = cast(value=$const1218.0) :: bool
                del $const1218.0
                return $1220return_value.1
270:         else:
271:             return False
              label 1222
                del $1212compare_op.9
                $const1222.0 = const(bool, False) :: bool
                $1224return_value.1 = cast(value=$const1222.0) :: bool
                del $const1222.0
                return $1224return_value.1



Function name: _identify_cavity
in file: final_2D_robust_multidimarr.py
with signature: (array(float64, 2d, C), int64, int64, array(int64, 2d, C), array(int64, 2d, C), array(int64, 1d, C), array(int64, 1d, C), array(int64, 2d, C), int64, array(bool, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64, float64, float64, float64, float64, array(int64, 1d, C), array(int64, 1d, C)) -> Tuple(array(int64, 1d, C), int64, array(int64, 1d, C), int64, array(int64, 2d, C))
274: @njit
275: def _identify_cavity(
276:         points, point_id, t_index, neighbour_ID, vertices_ID, ic_bad_tri,
277:         ic_boundary_tri, ic_boundary_vtx, gv, bad_tri_indicator_arr, B, C1, C2,
278:         D, u, v, bc, ca, ab, axbc, axxbc, aybc, ayybc, adet, bxca, bxxca, byca,
279:         byyca, bdet, cxab, cxxab, cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb,
280:         cc, temp8, temp16a, temp16b, temp16c, temp32a, temp32b, temp48, temp64,
281:         axtbb, axtcc, aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb,
282:         cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab, axtbct, aytbct,
283:         bxtcat, bytcat, cxtabt, cytabt, axtbctt, aytbctt, bxtcatt, bytcatt,
284:         cxtabtt, cytabtt, abt, bct, cat, abtt, bctt, catt, splitter,
285:         iccerrboundA, iccerrboundB, iccerrboundC, resulterrbound, ccwerrboundA,
286:         ccwerrboundB, ccwerrboundC, static_filter_o2d, static_filter_i2d,
287:         orient2d_count, incircle_count):
288:     '''
289:     Identifies all the 'bad' triangles, i.e. the triangles whose circumcircles
290:     enclose the given point. Returns a list of the indices of the bad triangles
291:     and a list of the triangles bordering the cavity.
292:
293:               points : The global array containing the co-ordinates of all the
294:                        points to be triangulated.
295:             point_id : The index (corresponding to the points array) of the
296:                        point to be inserted into the triangulation.
297:              t_index : The index of the tri enclosing point_id.
298:         neighbour_ID : The global array containing the indices of the
299:                        neighbours of all the triangles.
300:          vertices_ID : The global array containing the indices (corresponding
301:                        to the points array) of the vertices of all the tri.
302:           ic_bad_tri : Helper array, used to store the indices of the 'bad'
303:                        tri, i.e. those whose circumspheres containt point_id.
304:      ic_boundary_tri : Helper array, used to store the tri on the boundary of
305:                        the cavity.
306:      ic_boundary_vtx : Helper array, used to store the points on the boundary
307:                        of the cavity.
308:                   gv : Index assigned to the ghost vertex.
309:     '''
310:
311:     ic_len_bad_tri = len(ic_bad_tri)
      label 0
        points = arg(0, name=points) :: array(float64, 2d, C)
        point_id = arg(1, name=point_id) :: int64
        t_index = arg(2, name=t_index) :: int64
        neighbour_ID = arg(3, name=neighbour_ID) :: array(int64, 2d, C)
        vertices_ID = arg(4, name=vertices_ID) :: array(int64, 2d, C)
        ic_bad_tri = arg(5, name=ic_bad_tri) :: array(int64, 1d, C)
        ic_boundary_tri = arg(6, name=ic_boundary_tri) :: array(int64, 1d, C)
        ic_boundary_vtx = arg(7, name=ic_boundary_vtx) :: array(int64, 2d, C)
        gv = arg(8, name=gv) :: int64
        bad_tri_indicator_arr = arg(9, name=bad_tri_indicator_arr) :: array(bool, 1d, C)
        B = arg(10, name=B) :: array(float64, 1d, C)
        C1 = arg(11, name=C1) :: array(float64, 1d, C)
        C2 = arg(12, name=C2) :: array(float64, 1d, C)
        D = arg(13, name=D) :: array(float64, 1d, C)
        u = arg(14, name=u) :: array(float64, 1d, C)
        v = arg(15, name=v) :: array(float64, 1d, C)
        bc = arg(16, name=bc) :: array(float64, 1d, C)
        ca = arg(17, name=ca) :: array(float64, 1d, C)
        ab = arg(18, name=ab) :: array(float64, 1d, C)
        axbc = arg(19, name=axbc) :: array(float64, 1d, C)
        axxbc = arg(20, name=axxbc) :: array(float64, 1d, C)
        aybc = arg(21, name=aybc) :: array(float64, 1d, C)
        ayybc = arg(22, name=ayybc) :: array(float64, 1d, C)
        adet = arg(23, name=adet) :: array(float64, 1d, C)
        bxca = arg(24, name=bxca) :: array(float64, 1d, C)
        bxxca = arg(25, name=bxxca) :: array(float64, 1d, C)
        byca = arg(26, name=byca) :: array(float64, 1d, C)
        byyca = arg(27, name=byyca) :: array(float64, 1d, C)
        bdet = arg(28, name=bdet) :: array(float64, 1d, C)
        cxab = arg(29, name=cxab) :: array(float64, 1d, C)
        cxxab = arg(30, name=cxxab) :: array(float64, 1d, C)
        cyab = arg(31, name=cyab) :: array(float64, 1d, C)
        cyyab = arg(32, name=cyyab) :: array(float64, 1d, C)
        cdet = arg(33, name=cdet) :: array(float64, 1d, C)
        abdet = arg(34, name=abdet) :: array(float64, 1d, C)
        fin1 = arg(35, name=fin1) :: array(float64, 1d, C)
        fin2 = arg(36, name=fin2) :: array(float64, 1d, C)
        aa = arg(37, name=aa) :: array(float64, 1d, C)
        bb = arg(38, name=bb) :: array(float64, 1d, C)
        cc = arg(39, name=cc) :: array(float64, 1d, C)
        temp8 = arg(40, name=temp8) :: array(float64, 1d, C)
        temp16a = arg(41, name=temp16a) :: array(float64, 1d, C)
        temp16b = arg(42, name=temp16b) :: array(float64, 1d, C)
        temp16c = arg(43, name=temp16c) :: array(float64, 1d, C)
        temp32a = arg(44, name=temp32a) :: array(float64, 1d, C)
        temp32b = arg(45, name=temp32b) :: array(float64, 1d, C)
        temp48 = arg(46, name=temp48) :: array(float64, 1d, C)
        temp64 = arg(47, name=temp64) :: array(float64, 1d, C)
        axtbb = arg(48, name=axtbb) :: array(float64, 1d, C)
        axtcc = arg(49, name=axtcc) :: array(float64, 1d, C)
        aytbb = arg(50, name=aytbb) :: array(float64, 1d, C)
        aytcc = arg(51, name=aytcc) :: array(float64, 1d, C)
        bxtaa = arg(52, name=bxtaa) :: array(float64, 1d, C)
        bxtcc = arg(53, name=bxtcc) :: array(float64, 1d, C)
        bytaa = arg(54, name=bytaa) :: array(float64, 1d, C)
        bytcc = arg(55, name=bytcc) :: array(float64, 1d, C)
        cxtaa = arg(56, name=cxtaa) :: array(float64, 1d, C)
        cxtbb = arg(57, name=cxtbb) :: array(float64, 1d, C)
        cytaa = arg(58, name=cytaa) :: array(float64, 1d, C)
        cytbb = arg(59, name=cytbb) :: array(float64, 1d, C)
        axtbc = arg(60, name=axtbc) :: array(float64, 1d, C)
        aytbc = arg(61, name=aytbc) :: array(float64, 1d, C)
        bxtca = arg(62, name=bxtca) :: array(float64, 1d, C)
        bytca = arg(63, name=bytca) :: array(float64, 1d, C)
        cxtab = arg(64, name=cxtab) :: array(float64, 1d, C)
        cytab = arg(65, name=cytab) :: array(float64, 1d, C)
        axtbct = arg(66, name=axtbct) :: array(float64, 1d, C)
        aytbct = arg(67, name=aytbct) :: array(float64, 1d, C)
        bxtcat = arg(68, name=bxtcat) :: array(float64, 1d, C)
        bytcat = arg(69, name=bytcat) :: array(float64, 1d, C)
        cxtabt = arg(70, name=cxtabt) :: array(float64, 1d, C)
        cytabt = arg(71, name=cytabt) :: array(float64, 1d, C)
        axtbctt = arg(72, name=axtbctt) :: array(float64, 1d, C)
        aytbctt = arg(73, name=aytbctt) :: array(float64, 1d, C)
        bxtcatt = arg(74, name=bxtcatt) :: array(float64, 1d, C)
        bytcatt = arg(75, name=bytcatt) :: array(float64, 1d, C)
        cxtabtt = arg(76, name=cxtabtt) :: array(float64, 1d, C)
        cytabtt = arg(77, name=cytabtt) :: array(float64, 1d, C)
        abt = arg(78, name=abt) :: array(float64, 1d, C)
        bct = arg(79, name=bct) :: array(float64, 1d, C)
        cat = arg(80, name=cat) :: array(float64, 1d, C)
        abtt = arg(81, name=abtt) :: array(float64, 1d, C)
        bctt = arg(82, name=bctt) :: array(float64, 1d, C)
        catt = arg(83, name=catt) :: array(float64, 1d, C)
        splitter = arg(84, name=splitter) :: float64
        iccerrboundA = arg(85, name=iccerrboundA) :: float64
        iccerrboundB = arg(86, name=iccerrboundB) :: float64
        iccerrboundC = arg(87, name=iccerrboundC) :: float64
        resulterrbound = arg(88, name=resulterrbound) :: float64
        ccwerrboundA = arg(89, name=ccwerrboundA) :: float64
        ccwerrboundB = arg(90, name=ccwerrboundB) :: float64
        ccwerrboundC = arg(91, name=ccwerrboundC) :: float64
        static_filter_o2d = arg(92, name=static_filter_o2d) :: float64
        static_filter_i2d = arg(93, name=static_filter_i2d) :: float64
        orient2d_count = arg(94, name=orient2d_count) :: array(int64, 1d, C)
        incircle_count = arg(95, name=incircle_count) :: array(int64, 1d, C)
        $2load_global.0 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $6call_function.2 = call $2load_global.0(ic_bad_tri, func=$2load_global.0, args=[Var(ic_bad_tri, final_2D_robust_multidimarr.py:311)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> int64
        del $2load_global.0
        ic_len_bad_tri = $6call_function.2 :: int64
        del $6call_function.2
312:     ic_bad_tri_end = np.int64(0)
        $10load_global.3 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $12load_method.4 = getattr(value=$10load_global.3, attr=int64) :: class(int64)
        del $10load_global.3
        $const14.5 = const(int, 0) :: Literal[int](0)
        $16call_method.6 = call $12load_method.4($const14.5, func=$12load_method.4, args=[Var($const14.5, final_2D_robust_multidimarr.py:312)], kws=(), vararg=None) :: (Literal[int](0),) -> int64
        del $const14.5
        del $12load_method.4
        ic_bad_tri_end = $16call_method.6 :: int64
        del $16call_method.6
313:
314:     ic_len_boundary_tri = len(ic_boundary_tri)
        $20load_global.7 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $24call_function.9 = call $20load_global.7(ic_boundary_tri, func=$20load_global.7, args=[Var(ic_boundary_tri, final_2D_robust_multidimarr.py:311)], kws=(), vararg=None) :: (array(int64, 1d, C),) -> int64
        del $20load_global.7
        ic_len_boundary_tri = $24call_function.9 :: int64
        del $24call_function.9
315:     ic_boundary_tri_end = np.int64(0)
        $28load_global.10 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $30load_method.11 = getattr(value=$28load_global.10, attr=int64) :: class(int64)
        del $28load_global.10
        $const32.12 = const(int, 0) :: Literal[int](0)
        $34call_method.13 = call $30load_method.11($const32.12, func=$30load_method.11, args=[Var($const32.12, final_2D_robust_multidimarr.py:315)], kws=(), vararg=None) :: (Literal[int](0),) -> int64
        del $const32.12
        del $30load_method.11
        ic_boundary_tri_end = $34call_method.13 :: int64
        del $34call_method.13
316:
317:     ic_len_boundary_vtx = len(ic_boundary_vtx)
        $38load_global.14 = global(len: <built-in function len>) :: Function(<built-in function len>)
        $42call_function.16 = call $38load_global.14(ic_boundary_vtx, func=$38load_global.14, args=[Var(ic_boundary_vtx, final_2D_robust_multidimarr.py:311)], kws=(), vararg=None) :: (array(int64, 2d, C),) -> int64
        del $38load_global.14
        ic_len_boundary_vtx = $42call_function.16 :: int64
        del $42call_function.16
318:     ic_boundary_vtx_end = np.int64(0)
        $46load_global.17 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
        $48load_method.18 = getattr(value=$46load_global.17, attr=int64) :: class(int64)
        del $46load_global.17
        $const50.19 = const(int, 0) :: Literal[int](0)
        $52call_method.20 = call $48load_method.18($const50.19, func=$48load_method.18, args=[Var($const50.19, final_2D_robust_multidimarr.py:318)], kws=(), vararg=None) :: (Literal[int](0),) -> int64
        del $const50.19
        del $48load_method.18
        ic_boundary_vtx_end = $52call_method.20 :: int64
        del $52call_method.20
319:
320:     # Adding the first bad triangle, i.e. the enclosing triangle
321:     ic_bad_tri[ic_bad_tri_end] = t_index
        ic_bad_tri[ic_bad_tri_end] = t_index :: (array(int64, 1d, C), int64, int64) -> none
322:     bad_tri_indicator_arr[t_index] = True
        $const64.24 = const(bool, True) :: bool
        bad_tri_indicator_arr[t_index] = $const64.24 :: (array(bool, 1d, C), int64, bool) -> none
        del t_index
        del $const64.24
323:     ic_bad_tri_end += 1
        $const74.28 = const(int, 1) :: Literal[int](1)
        $76inplace_add.29 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=ic_bad_tri_end, rhs=$const74.28, static_lhs=Undefined, static_rhs=Undefined) :: int64
        del ic_bad_tri_end
        del $const74.28
        ic_bad_tri_end.1 = $76inplace_add.29 :: int64
        del $76inplace_add.29
324:
325:     ic_idx = 0
        $const80.30 = const(int, 0) :: Literal[int](0)
        ic_idx = $const80.30 :: int64
        del $const80.30
326:     while True:
        jump 84
      label 84
327:         t_index = ic_bad_tri[ic_idx]
            jump 88
          label 88
            del $720compare_op.5
            $92binary_subscr.2 = getitem(value=ic_bad_tri, index=ic_idx) :: int64
            t_index = $92binary_subscr.2 :: int64
            del $92binary_subscr.2
328:
329:         for j in range(3):
            jump 96
          label 96
            $100load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
            $const102.1 = const(int, 3) :: Literal[int](3)
            $104call_function.2 = call $100load_global.0($const102.1, func=$100load_global.0, args=[Var($const102.1, final_2D_robust_multidimarr.py:329)], kws=(), vararg=None) :: (int64,) -> range_state_int64
            del $const102.1
            del $100load_global.0
            $106get_iter.3 = getiter(value=$104call_function.2) :: range_iter_int64
            del $104call_function.2
            $phi108.0 = $106get_iter.3 :: range_iter_int64
            del $106get_iter.3
            jump 108
          label 108
            $108for_iter.1 = iternext(value=$phi108.0) :: pair<int64, bool>
            $108for_iter.2 = pair_first(value=$108for_iter.1) :: int64
            $108for_iter.3 = pair_second(value=$108for_iter.1) :: bool
            del $108for_iter.1
            $phi112.1 = $108for_iter.2 :: int64
            del $108for_iter.2
            branch $108for_iter.3, 112, 706
          label 112
            del $108for_iter.3
            j = $phi112.1 :: int64
            del $phi112.1
          label 731
            del jth_nbr_idx
            del j
            del $134binary_subscr.11
            jump 108
330:             jth_nbr_idx = neighbour_ID[t_index, j]//3
                $120build_tuple.5 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:311), Var(j, final_2D_robust_multidimarr.py:329)]) :: UniTuple(int64 x 2)
                $122binary_subscr.6 = getitem(value=neighbour_ID, index=$120build_tuple.5) :: int64
                del $120build_tuple.5
                $const124.7 = const(int, 3) :: Literal[int](3)
                $126binary_floor_divide.8 = $122binary_subscr.6 // $const124.7 :: int64
                del $const124.7
                del $122binary_subscr.6
                jth_nbr_idx = $126binary_floor_divide.8 :: int64
                del $126binary_floor_divide.8
331:
332:             if not bad_tri_indicator_arr[jth_nbr_idx]:
                $134binary_subscr.11 = getitem(value=bad_tri_indicator_arr, index=jth_nbr_idx) :: bool
                branch $134binary_subscr.11, 731, 138
333:                 # i.e. jth_nbr_idx has not been stored in the ic_bad_tri
334:                 # array yet.
335:                 inside_tri = _cavity_helper(
                  label 138
                    del $134binary_subscr.11
                    $138load_global.1 = global(_cavity_helper: CPUDispatcher(<function _cavity_helper at 0x7f51d4cc5320>)) :: type(CPUDispatcher(<function _cavity_helper at 0x7f51d4cc5320>))
336:                     point_id, jth_nbr_idx, points, vertices_ID, gv, B, C1, C2,
337:                     D, u, v, bc, ca, ab, axbc, axxbc, aybc, ayybc, adet, bxca,
338:                     bxxca, byca, byyca, bdet, cxab, cxxab, cyab, cyyab, cdet,
339:                     abdet, fin1, fin2, aa, bb, cc, temp8, temp16a, temp16b,
340:                     temp16c, temp32a, temp32b, temp48, temp64, axtbb, axtcc,
341:                     aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb,
342:                     cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab,
343:                     axtbct, aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt,
344:                     aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct, cat,
345:                     abtt, bctt, catt, splitter, iccerrboundA, iccerrboundB,
346:                     iccerrboundC, resulterrbound, ccwerrboundA, ccwerrboundB,
347:                     ccwerrboundC, static_filter_o2d, static_filter_i2d,
348:                     orient2d_count, incircle_count)
                        $322call_function.93 = call $138load_global.1(point_id, jth_nbr_idx, points, vertices_ID, gv, B, C1, C2, D, u, v, bc, ca, ab, axbc, axxbc, aybc, ayybc, adet, bxca, bxxca, byca, byyca, bdet, cxab, cxxab, cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb, cc, temp8, temp16a, temp16b, temp16c, temp32a, temp32b, temp48, temp64, axtbb, axtcc, aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb, cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab, axtbct, aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt, aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct, cat, abtt, bctt, catt, splitter, iccerrboundA, iccerrboundB, iccerrboundC, resulterrbound, ccwerrboundA, ccwerrboundB, ccwerrboundC, static_filter_o2d, static_filter_i2d, orient2d_count, incircle_count, func=$138load_global.1, args=[Var(point_id, final_2D_robust_multidimarr.py:311), Var(jth_nbr_idx, final_2D_robust_multidimarr.py:330), Var(points, final_2D_robust_multidimarr.py:311), Var(vertices_ID, final_2D_robust_multidimarr.py:311), Var(gv, final_2D_robust_multidimarr.py:311), Var(B, final_2D_robust_multidimarr.py:311), Var(C1, final_2D_robust_multidimarr.py:311), Var(C2, final_2D_robust_multidimarr.py:311), Var(D, final_2D_robust_multidimarr.py:311), Var(u, final_2D_robust_multidimarr.py:311), Var(v, final_2D_robust_multidimarr.py:311), Var(bc, final_2D_robust_multidimarr.py:311), Var(ca, final_2D_robust_multidimarr.py:311), Var(ab, final_2D_robust_multidimarr.py:311), Var(axbc, final_2D_robust_multidimarr.py:311), Var(axxbc, final_2D_robust_multidimarr.py:311), Var(aybc, final_2D_robust_multidimarr.py:311), Var(ayybc, final_2D_robust_multidimarr.py:311), Var(adet, final_2D_robust_multidimarr.py:311), Var(bxca, final_2D_robust_multidimarr.py:311), Var(bxxca, final_2D_robust_multidimarr.py:311), Var(byca, final_2D_robust_multidimarr.py:311), Var(byyca, final_2D_robust_multidimarr.py:311), Var(bdet, final_2D_robust_multidimarr.py:311), Var(cxab, final_2D_robust_multidimarr.py:311), Var(cxxab, final_2D_robust_multidimarr.py:311), Var(cyab, final_2D_robust_multidimarr.py:311), Var(cyyab, final_2D_robust_multidimarr.py:311), Var(cdet, final_2D_robust_multidimarr.py:311), Var(abdet, final_2D_robust_multidimarr.py:311), Var(fin1, final_2D_robust_multidimarr.py:311), Var(fin2, final_2D_robust_multidimarr.py:311), Var(aa, final_2D_robust_multidimarr.py:311), Var(bb, final_2D_robust_multidimarr.py:311), Var(cc, final_2D_robust_multidimarr.py:311), Var(temp8, final_2D_robust_multidimarr.py:311), Var(temp16a, final_2D_robust_multidimarr.py:311), Var(temp16b, final_2D_robust_multidimarr.py:311), Var(temp16c, final_2D_robust_multidimarr.py:311), Var(temp32a, final_2D_robust_multidimarr.py:311), Var(temp32b, final_2D_robust_multidimarr.py:311), Var(temp48, final_2D_robust_multidimarr.py:311), Var(temp64, final_2D_robust_multidimarr.py:311), Var(axtbb, final_2D_robust_multidimarr.py:311), Var(axtcc, final_2D_robust_multidimarr.py:311), Var(aytbb, final_2D_robust_multidimarr.py:311), Var(aytcc, final_2D_robust_multidimarr.py:311), Var(bxtaa, final_2D_robust_multidimarr.py:311), Var(bxtcc, final_2D_robust_multidimarr.py:311), Var(bytaa, final_2D_robust_multidimarr.py:311), Var(bytcc, final_2D_robust_multidimarr.py:311), Var(cxtaa, final_2D_robust_multidimarr.py:311), Var(cxtbb, final_2D_robust_multidimarr.py:311), Var(cytaa, final_2D_robust_multidimarr.py:311), Var(cytbb, final_2D_robust_multidimarr.py:311), Var(axtbc, final_2D_robust_multidimarr.py:311), Var(aytbc, final_2D_robust_multidimarr.py:311), Var(bxtca, final_2D_robust_multidimarr.py:311), Var(bytca, final_2D_robust_multidimarr.py:311), Var(cxtab, final_2D_robust_multidimarr.py:311), Var(cytab, final_2D_robust_multidimarr.py:311), Var(axtbct, final_2D_robust_multidimarr.py:311), Var(aytbct, final_2D_robust_multidimarr.py:311), Var(bxtcat, final_2D_robust_multidimarr.py:311), Var(bytcat, final_2D_robust_multidimarr.py:311), Var(cxtabt, final_2D_robust_multidimarr.py:311), Var(cytabt, final_2D_robust_multidimarr.py:311), Var(axtbctt, final_2D_robust_multidimarr.py:311), Var(aytbctt, final_2D_robust_multidimarr.py:311), Var(bxtcatt, final_2D_robust_multidimarr.py:311), Var(bytcatt, final_2D_robust_multidimarr.py:311), Var(cxtabtt, final_2D_robust_multidimarr.py:311), Var(cytabtt, final_2D_robust_multidimarr.py:311), Var(abt, final_2D_robust_multidimarr.py:311), Var(bct, final_2D_robust_multidimarr.py:311), Var(cat, final_2D_robust_multidimarr.py:311), Var(abtt, final_2D_robust_multidimarr.py:311), Var(bctt, final_2D_robust_multidimarr.py:311), Var(catt, final_2D_robust_multidimarr.py:311), Var(splitter, final_2D_robust_multidimarr.py:311), Var(iccerrboundA, final_2D_robust_multidimarr.py:311), Var(iccerrboundB, final_2D_robust_multidimarr.py:311), Var(iccerrboundC, final_2D_robust_multidimarr.py:311), Var(resulterrbound, final_2D_robust_multidimarr.py:311), Var(ccwerrboundA, final_2D_robust_multidimarr.py:311), Var(ccwerrboundB, final_2D_robust_multidimarr.py:311), Var(ccwerrboundC, final_2D_robust_multidimarr.py:311), Var(static_filter_o2d, final_2D_robust_multidimarr.py:311), Var(static_filter_i2d, final_2D_robust_multidimarr.py:311), Var(orient2d_count, final_2D_robust_multidimarr.py:311), Var(incircle_count, final_2D_robust_multidimarr.py:311)], kws=(), vararg=None) :: (int64, int64, array(float64, 2d, C), array(int64, 2d, C), int64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64, float64, float64, float64, float64, array(int64, 1d, C), array(int64, 1d, C)) -> bool
                        del $138load_global.1
                        inside_tri = $322call_function.93 :: bool
                        del $322call_function.93
349:                 if inside_tri is True:
                    $const328.95 = const(bool, True) :: bool
                    $330compare_op.96 = inside_tri is $const328.95 :: bool
                    del inside_tri
                    del $const328.95
                    branch $330compare_op.96, 336, 436
350:                     # i.e. the j'th neighbour is a bad triangle
351:                     if ic_bad_tri_end >= ic_len_bad_tri:
                      label 336
                        del j
                        del $330compare_op.96
                        $340compare_op.3 = ic_bad_tri_end.1 >= ic_len_bad_tri :: bool
                        branch $340compare_op.3, 346, 410
352:                         temp_arr1 = np.empty(2*ic_len_bad_tri, dtype=np.int64)
                          label 346
                            del $340compare_op.3
                            $346load_global.1 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $348load_attr.2 = getattr(value=$346load_global.1, attr=empty) :: Function(<built-in function empty>)
                            del $346load_global.1
                            $const350.3 = const(int, 2) :: Literal[int](2)
                            $354binary_multiply.5 = $const350.3 * ic_len_bad_tri :: int64
                            del $const350.3
                            $356load_global.6 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $358load_attr.7 = getattr(value=$356load_global.6, attr=int64) :: class(int64)
                            del $356load_global.6
                            $362call_function_kw.9 = call $348load_attr.2($354binary_multiply.5, func=$348load_attr.2, args=[Var($354binary_multiply.5, final_2D_robust_multidimarr.py:352)], kws=[('dtype', Var($358load_attr.7, final_2D_robust_multidimarr.py:352))], vararg=None) :: (int64, class(int64)) -> array(int64, 1d, C)
                            del $358load_attr.7
                            del $354binary_multiply.5
                            del $348load_attr.2
                            temp_arr1 = $362call_function_kw.9 :: array(int64, 1d, C)
                            del $362call_function_kw.9
353:                         for l in range(ic_bad_tri_end):
                            jump 366
                          label 366
                            $368load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
                            $372call_function.3 = call $368load_global.1(ic_bad_tri_end.1, func=$368load_global.1, args=[Var(ic_bad_tri_end.1, final_2D_robust_multidimarr.py:323)], kws=(), vararg=None) :: (int64,) -> range_state_int64
                            del $368load_global.1
                            $374get_iter.4 = getiter(value=$372call_function.3) :: range_iter_int64
                            del $372call_function.3
                            $phi376.1 = $374get_iter.4 :: range_iter_int64
                            del $374get_iter.4
                            jump 376
                          label 376
                            $376for_iter.2 = iternext(value=$phi376.1) :: pair<int64, bool>
                            $376for_iter.3 = pair_first(value=$376for_iter.2) :: int64
                            $376for_iter.4 = pair_second(value=$376for_iter.2) :: bool
                            del $376for_iter.2
                            $phi378.2 = $376for_iter.3 :: int64
                            del $376for_iter.3
                            branch $376for_iter.4, 378, 396
                          label 378
                            del $376for_iter.4
                            l = $phi378.2 :: int64
                            del $phi378.2
354:                             temp_arr1[l] = ic_bad_tri[l]
                                $384binary_subscr.5 = getitem(value=ic_bad_tri, index=l) :: int64
                                temp_arr1[l] = $384binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
                                del l
                                del $384binary_subscr.5
                                jump 376
                              label 396
355:                         ic_len_bad_tri = 2*ic_len_bad_tri
                            del ic_bad_tri
                            del $phi378.2
                            del $phi376.1
                            del $376for_iter.4
                            jump 398
                          label 398
                            $const398.1 = const(int, 2) :: Literal[int](2)
                            $402binary_multiply.3 = $const398.1 * ic_len_bad_tri :: int64
                            del $const398.1
                            ic_len_bad_tri = $402binary_multiply.3 :: int64
                            del $402binary_multiply.3
356:                         ic_bad_tri = temp_arr1
                            ic_bad_tri = temp_arr1 :: array(int64, 1d, C)
                            del temp_arr1
357:
358:                     ic_bad_tri[ic_bad_tri_end] = jth_nbr_idx
                        jump 410
                      label 410
                        del $340compare_op.3
                        ic_bad_tri[ic_bad_tri_end.1] = jth_nbr_idx :: (array(int64, 1d, C), int64, int64) -> none
359:                     ic_bad_tri_end += 1
                        $const420.5 = const(int, 1) :: Literal[int](1)
                        $422inplace_add.6 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=ic_bad_tri_end.1, rhs=$const420.5, static_lhs=Undefined, static_rhs=Undefined) :: int64
                        del $const420.5
                        ic_bad_tri_end.1 = $422inplace_add.6 :: int64
                        del $422inplace_add.6
360:                     bad_tri_indicator_arr[jth_nbr_idx] = True
                        $const426.7 = const(bool, True) :: bool
                        bad_tri_indicator_arr[jth_nbr_idx] = $const426.7 :: (array(bool, 1d, C), int64, bool) -> none
                        del jth_nbr_idx
                        del $const426.7
                        jump 731
361:                 else:
362:                     # i.e. the j'th neighbour is a boundary triangle
363:                     if ic_boundary_tri_end >= ic_len_boundary_tri:
                      label 436
                        del jth_nbr_idx
                        del $330compare_op.96
                        $440compare_op.3 = ic_boundary_tri_end >= ic_len_boundary_tri :: bool
                        branch $440compare_op.3, 446, 510
364:                         temp_arr2 = np.empty(
                          label 446
                            del $440compare_op.3
                            $446load_global.1 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $448load_attr.2 = getattr(value=$446load_global.1, attr=empty) :: Function(<built-in function empty>)
                            del $446load_global.1
365:                             2*ic_len_boundary_tri,
                                $const450.3 = const(int, 2) :: Literal[int](2)
                                $454binary_multiply.5 = $const450.3 * ic_len_boundary_tri :: int64
                                del $const450.3
366:                             dtype=np.int64
                                $456load_global.6 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                                $458load_attr.7 = getattr(value=$456load_global.6, attr=int64) :: class(int64)
                                del $456load_global.6
                                $462call_function_kw.9 = call $448load_attr.2($454binary_multiply.5, func=$448load_attr.2, args=[Var($454binary_multiply.5, final_2D_robust_multidimarr.py:365)], kws=[('dtype', Var($458load_attr.7, final_2D_robust_multidimarr.py:366))], vararg=None) :: (int64, class(int64)) -> array(int64, 1d, C)
                                del $458load_attr.7
                                del $454binary_multiply.5
                                del $448load_attr.2
                                temp_arr2 = $462call_function_kw.9 :: array(int64, 1d, C)
                                del $462call_function_kw.9
367:                         )
368:                         for l in range(ic_boundary_tri_end):
                            jump 466
                          label 466
                            $468load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
                            $472call_function.3 = call $468load_global.1(ic_boundary_tri_end, func=$468load_global.1, args=[Var(ic_boundary_tri_end, final_2D_robust_multidimarr.py:315)], kws=(), vararg=None) :: (int64,) -> range_state_int64
                            del $468load_global.1
                            $474get_iter.4 = getiter(value=$472call_function.3) :: range_iter_int64
                            del $472call_function.3
                            $phi476.1 = $474get_iter.4 :: range_iter_int64
                            del $474get_iter.4
                            jump 476
                          label 476
                            $476for_iter.2 = iternext(value=$phi476.1) :: pair<int64, bool>
                            $476for_iter.3 = pair_first(value=$476for_iter.2) :: int64
                            $476for_iter.4 = pair_second(value=$476for_iter.2) :: bool
                            del $476for_iter.2
                            $phi478.2 = $476for_iter.3 :: int64
                            del $476for_iter.3
                            branch $476for_iter.4, 478, 496
                          label 478
                            del $476for_iter.4
                            l = $phi478.2 :: int64
                            del $phi478.2
369:                             temp_arr2[l] = ic_boundary_tri[l]
                                $484binary_subscr.5 = getitem(value=ic_boundary_tri, index=l) :: int64
                                temp_arr2[l] = $484binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
                                del l
                                del $484binary_subscr.5
                                jump 476
                              label 496
370:                         ic_len_boundary_tri = 2*ic_len_boundary_tri
                            del ic_boundary_tri
                            del $phi478.2
                            del $phi476.1
                            del $476for_iter.4
                            jump 498
                          label 498
                            $const498.1 = const(int, 2) :: Literal[int](2)
                            $502binary_multiply.3 = $const498.1 * ic_len_boundary_tri :: int64
                            del $const498.1
                            ic_len_boundary_tri = $502binary_multiply.3 :: int64
                            del $502binary_multiply.3
371:                         ic_boundary_tri = temp_arr2
                            ic_boundary_tri = temp_arr2 :: array(int64, 1d, C)
                            del temp_arr2
372:
373:                     ic_boundary_tri[ic_boundary_tri_end] = neighbour_ID[
                        jump 510
                      label 510
374:                         t_index, j]
                            del $440compare_op.3
                            $516build_tuple.4 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:311), Var(j, final_2D_robust_multidimarr.py:329)]) :: UniTuple(int64 x 2)
                            $518binary_subscr.5 = getitem(value=neighbour_ID, index=$516build_tuple.4) :: int64
                            del $516build_tuple.4
                            ic_boundary_tri[ic_boundary_tri_end] = $518binary_subscr.5 :: (array(int64, 1d, C), int64, int64) -> none
                            del $518binary_subscr.5
375:                     ic_boundary_tri_end += 1
                        $const528.9 = const(int, 1) :: Literal[int](1)
                        $530inplace_add.10 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=ic_boundary_tri_end, rhs=$const528.9, static_lhs=Undefined, static_rhs=Undefined) :: int64
                        del $const528.9
                        ic_boundary_tri_end = $530inplace_add.10 :: int64
                        del $530inplace_add.10
376:
377:                     # Storing the vertices of t_index that lie on the boundary
378:                     if ic_boundary_vtx_end >= ic_len_boundary_vtx:
                        $538compare_op.13 = ic_boundary_vtx_end >= ic_len_boundary_vtx :: bool
                        branch $538compare_op.13, 544, 640
379:                         temp_arr3 = np.empty(
                          label 544
                            del $538compare_op.13
                            $544load_global.1 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                            $546load_attr.2 = getattr(value=$544load_global.1, attr=empty) :: Function(<built-in function empty>)
                            del $544load_global.1
380:                             shape=(2*ic_len_boundary_vtx, 2),
                                $const548.3 = const(int, 2) :: Literal[int](2)
                                $552binary_multiply.5 = $const548.3 * ic_len_boundary_vtx :: int64
                                del $const548.3
                                $const554.6 = const(int, 2) :: Literal[int](2)
                                $556build_tuple.7 = build_tuple(items=[Var($552binary_multiply.5, final_2D_robust_multidimarr.py:380), Var($const554.6, final_2D_robust_multidimarr.py:380)]) :: Tuple(int64, Literal[int](2))
                                del $const554.6
                                del $552binary_multiply.5
381:                             dtype=np.int64
                                $558load_global.8 = global(np: <module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/home/rohan/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/__init__.py'>)
                                $560load_attr.9 = getattr(value=$558load_global.8, attr=int64) :: class(int64)
                                del $558load_global.8
                                $564call_function_kw.11 = call $546load_attr.2(func=$546load_attr.2, args=[], kws=[('shape', Var($556build_tuple.7, final_2D_robust_multidimarr.py:380)), ('dtype', Var($560load_attr.9, final_2D_robust_multidimarr.py:381))], vararg=None) :: (Tuple(int64, Literal[int](2)), class(int64)) -> array(int64, 2d, C)
                                del $560load_attr.9
                                del $556build_tuple.7
                                del $546load_attr.2
                                temp_arr3 = $564call_function_kw.11 :: array(int64, 2d, C)
                                del $564call_function_kw.11
382:                         )
383:                         for l in range(ic_boundary_vtx_end):
                            jump 568
                          label 568
                            $570load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
                            $574call_function.3 = call $570load_global.1(ic_boundary_vtx_end, func=$570load_global.1, args=[Var(ic_boundary_vtx_end, final_2D_robust_multidimarr.py:318)], kws=(), vararg=None) :: (int64,) -> range_state_int64
                            del $570load_global.1
                            $576get_iter.4 = getiter(value=$574call_function.3) :: range_iter_int64
                            del $574call_function.3
                            $phi578.1 = $576get_iter.4 :: range_iter_int64
                            del $576get_iter.4
                            jump 578
                          label 578
                            $578for_iter.2 = iternext(value=$phi578.1) :: pair<int64, bool>
                            $578for_iter.3 = pair_first(value=$578for_iter.2) :: int64
                            $578for_iter.4 = pair_second(value=$578for_iter.2) :: bool
                            del $578for_iter.2
                            $phi580.2 = $578for_iter.3 :: int64
                            del $578for_iter.3
                            branch $578for_iter.4, 580, 626
                          label 580
                            del $578for_iter.4
                            l = $phi580.2 :: int64
                            del $phi580.2
384:                             temp_arr3[l, 0] = ic_boundary_vtx[l, 0]
                                $const586.5 = const(int, 0) :: Literal[int](0)
                                $588build_tuple.6 = build_tuple(items=[Var(l, final_2D_robust_multidimarr.py:353), Var($const586.5, final_2D_robust_multidimarr.py:384)]) :: Tuple(int64, Literal[int](0))
                                del $const586.5
                                $590binary_subscr.7 = getitem(value=ic_boundary_vtx, index=$588build_tuple.6) :: int64
                                del $588build_tuple.6
                                $const596.10 = const(int, 0) :: Literal[int](0)
                                $598build_tuple.11 = build_tuple(items=[Var(l, final_2D_robust_multidimarr.py:353), Var($const596.10, final_2D_robust_multidimarr.py:384)]) :: Tuple(int64, Literal[int](0))
                                del $const596.10
                                temp_arr3[$598build_tuple.11] = $590binary_subscr.7 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                                del $598build_tuple.11
                                del $590binary_subscr.7
385:                             temp_arr3[l, 1] = ic_boundary_vtx[l, 1]
                                $const606.14 = const(int, 1) :: Literal[int](1)
                                $608build_tuple.15 = build_tuple(items=[Var(l, final_2D_robust_multidimarr.py:353), Var($const606.14, final_2D_robust_multidimarr.py:385)]) :: Tuple(int64, Literal[int](1))
                                del $const606.14
                                $610binary_subscr.16 = getitem(value=ic_boundary_vtx, index=$608build_tuple.15) :: int64
                                del $608build_tuple.15
                                $const616.19 = const(int, 1) :: Literal[int](1)
                                $618build_tuple.20 = build_tuple(items=[Var(l, final_2D_robust_multidimarr.py:353), Var($const616.19, final_2D_robust_multidimarr.py:385)]) :: Tuple(int64, Literal[int](1))
                                del l
                                del $const616.19
                                temp_arr3[$618build_tuple.20] = $610binary_subscr.16 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                                del $618build_tuple.20
                                del $610binary_subscr.16
                                jump 578
                              label 626
386:                         ic_len_boundary_vtx = 2*ic_len_boundary_vtx
                            del ic_boundary_vtx
                            del $phi580.2
                            del $phi578.1
                            del $578for_iter.4
                            jump 628
                          label 628
                            $const628.1 = const(int, 2) :: Literal[int](2)
                            $632binary_multiply.3 = $const628.1 * ic_len_boundary_vtx :: int64
                            del $const628.1
                            ic_len_boundary_vtx = $632binary_multiply.3 :: int64
                            del $632binary_multiply.3
387:                         ic_boundary_vtx = temp_arr3
                            ic_boundary_vtx = temp_arr3 :: array(int64, 2d, C)
                            del temp_arr3
388:
389:                     ic_boundary_vtx[ic_boundary_vtx_end, 0] = vertices_ID[
                        jump 640
                      label 640
390:                         t_index, (j+1) % 3]
                            del $538compare_op.13
                            $const646.4 = const(int, 1) :: Literal[int](1)
                            $648binary_add.5 = j + $const646.4 :: int64
                            del $const646.4
                            $const650.6 = const(int, 3) :: Literal[int](3)
                            $652binary_modulo.7 = $648binary_add.5 % $const650.6 :: int64
                            del $const650.6
                            del $648binary_add.5
                            $654build_tuple.8 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:311), Var($652binary_modulo.7, final_2D_robust_multidimarr.py:390)]) :: UniTuple(int64 x 2)
                            del $652binary_modulo.7
                            $656binary_subscr.9 = getitem(value=vertices_ID, index=$654build_tuple.8) :: int64
                            del $654build_tuple.8
                            $const662.12 = const(int, 0) :: Literal[int](0)
                            $664build_tuple.13 = build_tuple(items=[Var(ic_boundary_vtx_end, final_2D_robust_multidimarr.py:318), Var($const662.12, final_2D_robust_multidimarr.py:390)]) :: Tuple(int64, Literal[int](0))
                            del $const662.12
                            ic_boundary_vtx[$664build_tuple.13] = $656binary_subscr.9 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                            del $664build_tuple.13
                            del $656binary_subscr.9
391:                     ic_boundary_vtx[ic_boundary_vtx_end, 1] = vertices_ID[
392:                         t_index, (j+2) % 3]
                            $const674.17 = const(int, 2) :: Literal[int](2)
                            $676binary_add.18 = j + $const674.17 :: int64
                            del j
                            del $const674.17
                            $const678.19 = const(int, 3) :: Literal[int](3)
                            $680binary_modulo.20 = $676binary_add.18 % $const678.19 :: int64
                            del $const678.19
                            del $676binary_add.18
                            $682build_tuple.21 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:311), Var($680binary_modulo.20, final_2D_robust_multidimarr.py:392)]) :: UniTuple(int64 x 2)
                            del $680binary_modulo.20
                            $684binary_subscr.22 = getitem(value=vertices_ID, index=$682build_tuple.21) :: int64
                            del $682build_tuple.21
                            $const690.25 = const(int, 1) :: Literal[int](1)
                            $692build_tuple.26 = build_tuple(items=[Var(ic_boundary_vtx_end, final_2D_robust_multidimarr.py:318), Var($const690.25, final_2D_robust_multidimarr.py:392)]) :: Tuple(int64, Literal[int](1))
                            del $const690.25
                            ic_boundary_vtx[$692build_tuple.26] = $684binary_subscr.22 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                            del $692build_tuple.26
                            del $684binary_subscr.22
393:
394:                     ic_boundary_vtx_end += 1
                        $const698.28 = const(int, 1) :: Literal[int](1)
                        $700inplace_add.29 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=ic_boundary_vtx_end, rhs=$const698.28, static_lhs=Undefined, static_rhs=Undefined) :: int64
                        del $const698.28
                        ic_boundary_vtx_end = $700inplace_add.29 :: int64
                        del $700inplace_add.29
                        jump 731
                      label 706
395:
396:         ic_idx += 1
            del t_index
            del $phi112.1
            del $phi108.0
            del $108for_iter.3
            jump 708
          label 708
            $const710.1 = const(int, 1) :: Literal[int](1)
            $712inplace_add.2 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=ic_idx, rhs=$const710.1, static_lhs=Undefined, static_rhs=Undefined) :: int64
            del $const710.1
            ic_idx = $712inplace_add.2 :: int64
            del $712inplace_add.2
397:
398:         if ic_idx == ic_bad_tri_end:
            $720compare_op.5 = ic_idx == ic_bad_tri_end.1 :: bool
            branch $720compare_op.5, 724, 88
399:             break
              label 724
                del vertices_ID
                del v
                del u
                del temp8
                del temp64
                del temp48
                del temp32b
                del temp32a
                del temp16c
                del temp16b
                del temp16a
                del static_filter_o2d
                del static_filter_i2d
                del splitter
                del resulterrbound
                del points
                del point_id
                del orient2d_count
                del neighbour_ID
                del incircle_count
                del iccerrboundC
                del iccerrboundB
                del iccerrboundA
                del ic_len_boundary_vtx
                del ic_len_boundary_tri
                del ic_len_bad_tri
                del ic_idx
                del ic_boundary_vtx_end
                del gv
                del fin2
                del fin1
                del cyyab
                del cytbb
                del cytabtt
                del cytabt
                del cytab
                del cytaa
                del cyab
                del cxxab
                del cxtbb
                del cxtabtt
                del cxtabt
                del cxtab
                del cxtaa
                del cxab
                del cdet
                del ccwerrboundC
                del ccwerrboundB
                del ccwerrboundA
                del cc
                del catt
                del cat
                del ca
                del byyca
                del bytcc
                del bytcatt
                del bytcat
                del bytca
                del bytaa
                del byca
                del bxxca
                del bxtcc
                del bxtcatt
                del bxtcat
                del bxtca
                del bxtaa
                del bxca
                del bdet
                del bctt
                del bct
                del bc
                del bb
                del bad_tri_indicator_arr
                del ayybc
                del aytcc
                del aytbctt
                del aytbct
                del aytbc
                del aytbb
                del aybc
                del axxbc
                del axtcc
                del axtbctt
                del axtbct
                del axtbc
                del axtbb
                del axbc
                del adet
                del abtt
                del abt
                del abdet
                del ab
                del aa
                del D
                del C2
                del C1
                del B
                del $720compare_op.5
                jump 730
400:
401:     return ic_bad_tri, ic_bad_tri_end, ic_boundary_tri, \
      label 730
402:            ic_boundary_tri_end, ic_boundary_vtx
               $740build_tuple.5 = build_tuple(items=[Var(ic_bad_tri, final_2D_robust_multidimarr.py:311), Var(ic_bad_tri_end.1, final_2D_robust_multidimarr.py:323), Var(ic_boundary_tri, final_2D_robust_multidimarr.py:311), Var(ic_boundary_tri_end, final_2D_robust_multidimarr.py:315), Var(ic_boundary_vtx, final_2D_robust_multidimarr.py:311)]) :: Tuple(array(int64, 1d, C), int64, array(int64, 1d, C), int64, array(int64, 2d, C))
               del ic_boundary_vtx
               del ic_boundary_tri_end
               del ic_boundary_tri
               del ic_bad_tri_end.1
               del ic_bad_tri
               $742return_value.6 = cast(value=$740build_tuple.5) :: Tuple(array(int64, 1d, C), int64, array(int64, 1d, C), int64, array(int64, 2d, C))
               del $740build_tuple.5
               return $742return_value.6



Function name: _make_Delaunay_ball
in file: final_2D_robust_multidimarr.py
with signature: (int64, array(int64, 1d, C), int64, array(int64, 1d, C), int64, array(int64, 2d, C), array(float64, 2d, C), array(int64, 2d, C), array(int64, 2d, C), int64, int64) -> UniTuple(int64 x 2)
405: @njit
406: def _make_Delaunay_ball(
407:         point_id, bad_tri, bad_tri_end, boundary_tri, boundary_tri_end,
408:         boundary_vtx, points, neighbour_ID, vertices_ID, num_tri, gv):
409:     '''
410:     Joins all the vertices on the boundary to the new point, and forms
411:     the corresponding triangles along with their adjacencies. Returns the index
412:     of a new triangle, to be used as the starting point of the next walk.
413:
414:          point_id : The index corresponding to the points array of the point to
415:                     be inserted into the triangulation.
416:          bad_tri : The list of tri whose circumcircle contains point_id.
417:     boundary_tri : The list of triangles lying on the boundary of the cavity
418:                     formed by the bad triangles.
419:      boundary_vtx : The vertices lying on the boundary of the cavity formed by
420:                     all the bad triangles.
421:            points : The global array storing the co-ordinates of all the points
422:                     to be triangulated.
423:     '''
424:
425:     # populating the cavity with new triangles
426:     for i in range(boundary_tri_end):
      label 0
        point_id = arg(0, name=point_id) :: int64
        bad_tri = arg(1, name=bad_tri) :: array(int64, 1d, C)
        bad_tri_end = arg(2, name=bad_tri_end) :: int64
        boundary_tri = arg(3, name=boundary_tri) :: array(int64, 1d, C)
        boundary_tri_end = arg(4, name=boundary_tri_end) :: int64
        boundary_vtx = arg(5, name=boundary_vtx) :: array(int64, 2d, C)
        points = arg(6, name=points) :: array(float64, 2d, C)
        del points
        neighbour_ID = arg(7, name=neighbour_ID) :: array(int64, 2d, C)
        vertices_ID = arg(8, name=vertices_ID) :: array(int64, 2d, C)
        num_tri = arg(9, name=num_tri) :: int64
        gv = arg(10, name=gv) :: int64
        del gv
        jump 2
      label 2
        $4load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $8call_function.2 = call $4load_global.0(boundary_tri_end, func=$4load_global.0, args=[Var(boundary_tri_end, final_2D_robust_multidimarr.py:426)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del $4load_global.0
        $10get_iter.3 = getiter(value=$8call_function.2) :: range_iter_int64
        del $8call_function.2
        $phi12.0 = $10get_iter.3 :: range_iter_int64
        del $10get_iter.3
        jump 12
      label 12
        $12for_iter.1 = iternext(value=$phi12.0) :: pair<int64, bool>
        $12for_iter.2 = pair_first(value=$12for_iter.1) :: int64
        $12for_iter.3 = pair_second(value=$12for_iter.1) :: bool
        del $12for_iter.1
        $phi14.1 = $12for_iter.2 :: int64
        del $12for_iter.2
        branch $12for_iter.3, 14, 144
      label 14
        del $12for_iter.3
        i = $phi14.1 :: int64
        del $phi14.1
427:         if i < bad_tri_end:
            $20compare_op.4 = i < bad_tri_end :: bool
            branch $20compare_op.4, 24, 34
428:             t_index = bad_tri[i]
              label 24
                del $20compare_op.4
                $28binary_subscr.3 = getitem(value=bad_tri, index=i) :: int64
                t_index = $28binary_subscr.3 :: int64
                del $28binary_subscr.3
                jump 46
429:         else:
430:             t_index = num_tri
              label 34
                del $20compare_op.4
                t_index = num_tri :: int64
431:             num_tri += 1
                $const40.3 = const(int, 1) :: Literal[int](1)
                $42inplace_add.4 = inplace_binop(fn=<built-in function iadd>, immutable_fn=<built-in function add>, lhs=num_tri, rhs=$const40.3, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const40.3
                num_tri = $42inplace_add.4 :: int64
                del $42inplace_add.4
432:
433:         t_info = boundary_tri[i]
            jump 46
          label 46
            $50binary_subscr.3 = getitem(value=boundary_tri, index=i) :: int64
            t_info = $50binary_subscr.3 :: int64
            del $50binary_subscr.3
434:         neighbour_ID[t_index, 0] = t_info
            $const60.7 = const(int, 0) :: Literal[int](0)
            $62build_tuple.8 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:428), Var($const60.7, final_2D_robust_multidimarr.py:434)]) :: Tuple(int64, Literal[int](0))
            del $const60.7
            neighbour_ID[$62build_tuple.8] = t_info :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
            del $62build_tuple.8
435:         vertices_ID[t_index, 0] = point_id
            $const72.12 = const(int, 0) :: Literal[int](0)
            $74build_tuple.13 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:428), Var($const72.12, final_2D_robust_multidimarr.py:435)]) :: Tuple(int64, Literal[int](0))
            del $const72.12
            vertices_ID[$74build_tuple.13] = point_id :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
            del $74build_tuple.13
436:         vertices_ID[t_index, 1] = boundary_vtx[i, 0]
            $const82.16 = const(int, 0) :: Literal[int](0)
            $84build_tuple.17 = build_tuple(items=[Var(i, final_2D_robust_multidimarr.py:426), Var($const82.16, final_2D_robust_multidimarr.py:436)]) :: Tuple(int64, Literal[int](0))
            del $const82.16
            $86binary_subscr.18 = getitem(value=boundary_vtx, index=$84build_tuple.17) :: int64
            del $84build_tuple.17
            $const92.21 = const(int, 1) :: Literal[int](1)
            $94build_tuple.22 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:428), Var($const92.21, final_2D_robust_multidimarr.py:436)]) :: Tuple(int64, Literal[int](1))
            del $const92.21
            vertices_ID[$94build_tuple.22] = $86binary_subscr.18 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
            del $94build_tuple.22
            del $86binary_subscr.18
437:         vertices_ID[t_index, 2] = boundary_vtx[i, 1]
            $const102.25 = const(int, 1) :: Literal[int](1)
            $104build_tuple.26 = build_tuple(items=[Var(i, final_2D_robust_multidimarr.py:426), Var($const102.25, final_2D_robust_multidimarr.py:437)]) :: Tuple(int64, Literal[int](1))
            del i
            del $const102.25
            $106binary_subscr.27 = getitem(value=boundary_vtx, index=$104build_tuple.26) :: int64
            del $104build_tuple.26
            $const112.30 = const(int, 2) :: Literal[int](2)
            $114build_tuple.31 = build_tuple(items=[Var(t_index, final_2D_robust_multidimarr.py:428), Var($const112.30, final_2D_robust_multidimarr.py:437)]) :: Tuple(int64, Literal[int](2))
            del $const112.30
            vertices_ID[$114build_tuple.31] = $106binary_subscr.27 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
            del $114build_tuple.31
            del $106binary_subscr.27
438:         neighbour_ID[t_info//3, t_info % 3] = 3*t_index
            $const118.32 = const(int, 3) :: Literal[int](3)
            $122binary_multiply.34 = $const118.32 * t_index :: int64
            del t_index
            del $const118.32
            $const128.37 = const(int, 3) :: Literal[int](3)
            $130binary_floor_divide.38 = t_info // $const128.37 :: int64
            del $const128.37
            $const134.40 = const(int, 3) :: Literal[int](3)
            $136binary_modulo.41 = t_info % $const134.40 :: int64
            del t_info
            del $const134.40
            $138build_tuple.42 = build_tuple(items=[Var($130binary_floor_divide.38, final_2D_robust_multidimarr.py:438), Var($136binary_modulo.41, final_2D_robust_multidimarr.py:438)]) :: UniTuple(int64 x 2)
            del $136binary_modulo.41
            del $130binary_floor_divide.38
            neighbour_ID[$138build_tuple.42] = $122binary_multiply.34 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
            del $138build_tuple.42
            del $122binary_multiply.34
            jump 12
          label 144
439:
440:     for i in range(boundary_tri_end):
        del point_id
        del boundary_vtx
        del boundary_tri
        del $phi14.1
        del $phi12.0
        del $12for_iter.3
        jump 146
      label 146
        $148load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $152call_function.2 = call $148load_global.0(boundary_tri_end, func=$148load_global.0, args=[Var(boundary_tri_end, final_2D_robust_multidimarr.py:426)], kws=(), vararg=None) :: (int64,) -> range_state_int64
        del $148load_global.0
        $154get_iter.3 = getiter(value=$152call_function.2) :: range_iter_int64
        del $152call_function.2
        $phi156.0 = $154get_iter.3 :: range_iter_int64
        del $154get_iter.3
        jump 156
      label 156
        $156for_iter.1 = iternext(value=$phi156.0) :: pair<int64, bool>
        $156for_iter.2 = pair_first(value=$156for_iter.1) :: int64
        $156for_iter.3 = pair_second(value=$156for_iter.1) :: bool
        del $156for_iter.1
        $phi158.1 = $156for_iter.2 :: int64
        del $156for_iter.2
        branch $156for_iter.3, 158, 306
      label 158
        del $156for_iter.3
        i = $phi158.1 :: int64
        del $phi158.1
441:             if i < bad_tri_end:
                $164compare_op.4 = i < bad_tri_end :: bool
                branch $164compare_op.4, 168, 178
442:                 t1 = bad_tri[i]
                  label 168
                    del $164compare_op.4
                    $172binary_subscr.3 = getitem(value=bad_tri, index=i) :: int64
                    del i
                    t1 = $172binary_subscr.3 :: int64
                    del $172binary_subscr.3
                    jump 190
443:             else:
444:                 t1 = num_tri - (boundary_tri_end-i)
                  label 178
                    del $164compare_op.4
                    $184binary_subtract.4 = boundary_tri_end - i :: int64
                    del i
                    $186binary_subtract.5 = num_tri - $184binary_subtract.4 :: int64
                    del $184binary_subtract.4
                    t1 = $186binary_subtract.5 :: int64
                    del $186binary_subtract.5
445:             for j in range(boundary_tri_end):
                jump 190
              label 190
                $192load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
                $196call_function.3 = call $192load_global.1(boundary_tri_end, func=$192load_global.1, args=[Var(boundary_tri_end, final_2D_robust_multidimarr.py:426)], kws=(), vararg=None) :: (int64,) -> range_state_int64
                del $192load_global.1
                $198get_iter.4 = getiter(value=$196call_function.3) :: range_iter_int64
                del $196call_function.3
                $phi200.1 = $198get_iter.4 :: range_iter_int64
                del $198get_iter.4
                jump 200
              label 200
                del t2
                del $254compare_op.12
                $200for_iter.2 = iternext(value=$phi200.1) :: pair<int64, bool>
                $200for_iter.3 = pair_first(value=$200for_iter.2) :: int64
                $200for_iter.4 = pair_second(value=$200for_iter.2) :: bool
                del $200for_iter.2
                $phi202.2 = $200for_iter.3 :: int64
                del $200for_iter.3
                branch $200for_iter.4, 202, 302
              label 202
                del $200for_iter.4
                j = $phi202.2 :: int64
                del $phi202.2
446:                 if j < bad_tri_end:
                    $208compare_op.5 = j < bad_tri_end :: bool
                    branch $208compare_op.5, 212, 222
447:                     t2 = bad_tri[j]
                      label 212
                        del $208compare_op.5
                        $216binary_subscr.4 = getitem(value=bad_tri, index=j) :: int64
                        del j
                        t2 = $216binary_subscr.4 :: int64
                        del $216binary_subscr.4
                        jump 234
448:                 else:
449:                     t2 = num_tri - (boundary_tri_end-j)
                      label 222
                        del $208compare_op.5
                        $228binary_subtract.5 = boundary_tri_end - j :: int64
                        del j
                        $230binary_subtract.6 = num_tri - $228binary_subtract.5 :: int64
                        del $228binary_subtract.5
                        t2 = $230binary_subtract.6 :: int64
                        del $230binary_subtract.6
450:                 if vertices_ID[t1, 1] == vertices_ID[t2, 2]:
                    jump 234
                  label 234
                    $const238.4 = const(int, 1) :: Literal[int](1)
                    $240build_tuple.5 = build_tuple(items=[Var(t1, final_2D_robust_multidimarr.py:442), Var($const238.4, final_2D_robust_multidimarr.py:450)]) :: Tuple(int64, Literal[int](1))
                    del $const238.4
                    $242binary_subscr.6 = getitem(value=vertices_ID, index=$240build_tuple.5) :: int64
                    del $240build_tuple.5
                    $const248.9 = const(int, 2) :: Literal[int](2)
                    $250build_tuple.10 = build_tuple(items=[Var(t2, final_2D_robust_multidimarr.py:447), Var($const248.9, final_2D_robust_multidimarr.py:450)]) :: Tuple(int64, Literal[int](2))
                    del $const248.9
                    $252binary_subscr.11 = getitem(value=vertices_ID, index=$250build_tuple.10) :: int64
                    del $250build_tuple.10
                    $254compare_op.12 = $242binary_subscr.6 == $252binary_subscr.11 :: bool
                    del $252binary_subscr.11
                    del $242binary_subscr.6
                    branch $254compare_op.12, 258, 200
451:                     neighbour_ID[t1, 2] = 3*t2+1
                      label 258
                        del $phi200.1
                        del $254compare_op.12
                        $const258.2 = const(int, 3) :: Literal[int](3)
                        $262binary_multiply.4 = $const258.2 * t2 :: int64
                        del $const258.2
                        $const264.5 = const(int, 1) :: Literal[int](1)
                        $266binary_add.6 = $262binary_multiply.4 + $const264.5 :: int64
                        del $const264.5
                        del $262binary_multiply.4
                        $const272.9 = const(int, 2) :: Literal[int](2)
                        $274build_tuple.10 = build_tuple(items=[Var(t1, final_2D_robust_multidimarr.py:442), Var($const272.9, final_2D_robust_multidimarr.py:451)]) :: Tuple(int64, Literal[int](2))
                        del $const272.9
                        neighbour_ID[$274build_tuple.10] = $266binary_add.6 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                        del $274build_tuple.10
                        del $266binary_add.6
452:                     neighbour_ID[t2, 1] = 3*t1+2
                        $const278.11 = const(int, 3) :: Literal[int](3)
                        $282binary_multiply.13 = $const278.11 * t1 :: int64
                        del t1
                        del $const278.11
                        $const284.14 = const(int, 2) :: Literal[int](2)
                        $286binary_add.15 = $282binary_multiply.13 + $const284.14 :: int64
                        del $const284.14
                        del $282binary_multiply.13
                        $const292.18 = const(int, 1) :: Literal[int](1)
                        $294build_tuple.19 = build_tuple(items=[Var(t2, final_2D_robust_multidimarr.py:447), Var($const292.18, final_2D_robust_multidimarr.py:452)]) :: Tuple(int64, Literal[int](1))
                        del t2
                        del $const292.18
                        neighbour_ID[$294build_tuple.19] = $286binary_add.15 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                        del $294build_tuple.19
                        del $286binary_add.15
453:                     break
                        jump 304
                      label 302
                        del t1
                        del $phi202.2
                        del $phi200.1
                        del $200for_iter.4
                        jump 304
                      label 304
                        jump 156
                      label 306
454:
455:     old_tri = bad_tri[bad_tri_end-1]
        del $phi158.1
        del $phi156.0
        del $156for_iter.3
        jump 308
      label 308
        $const312.2 = const(int, 1) :: Literal[int](1)
        $314binary_subtract.3 = bad_tri_end - $const312.2 :: int64
        del $const312.2
        $316binary_subscr.4 = getitem(value=bad_tri, index=$314binary_subtract.3) :: int64
        del $314binary_subtract.3
        old_tri = $316binary_subscr.4 :: int64
        del $316binary_subscr.4
456:
457:     if boundary_tri_end < bad_tri_end:
        $324compare_op.7 = boundary_tri_end < bad_tri_end :: bool
        branch $324compare_op.7, 330, 716
458:         old_tri = bad_tri[boundary_tri_end-1]
          label 330
            del $324compare_op.7
            $const334.2 = const(int, 1) :: Literal[int](1)
            $336binary_subtract.3 = boundary_tri_end - $const334.2 :: int64
            del $const334.2
            $338binary_subscr.4 = getitem(value=bad_tri, index=$336binary_subtract.3) :: int64
            del $336binary_subtract.3
            old_tri = $338binary_subscr.4 :: int64
            del $338binary_subscr.4
459:         for k in range(boundary_tri_end, bad_tri_end):
            jump 342
          label 342
            $346load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
            $352call_function.3 = call $346load_global.0(boundary_tri_end, bad_tri_end, func=$346load_global.0, args=[Var(boundary_tri_end, final_2D_robust_multidimarr.py:426), Var(bad_tri_end, final_2D_robust_multidimarr.py:426)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
            del boundary_tri_end
            del $346load_global.0
            $354get_iter.4 = getiter(value=$352call_function.3) :: range_iter_int64
            del $352call_function.3
            $phi356.0 = $354get_iter.4 :: range_iter_int64
            del $354get_iter.4
            jump 356
          label 356
            $356for_iter.1 = iternext(value=$phi356.0) :: pair<int64, bool>
            $356for_iter.2 = pair_first(value=$356for_iter.1) :: int64
            $356for_iter.3 = pair_second(value=$356for_iter.1) :: bool
            del $356for_iter.1
            $phi360.1 = $356for_iter.2 :: int64
            del $356for_iter.2
            branch $356for_iter.3, 360, 714
          label 360
            del $356for_iter.3
            k = $phi360.1 :: int64
            del $phi360.1
460:             tri = bad_tri[k]
                $366binary_subscr.4 = getitem(value=bad_tri, index=k) :: int64
                tri = $366binary_subscr.4 :: int64
                del $366binary_subscr.4
461:             for t in range(tri, num_tri):
                jump 370
              label 370
                $372load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
                $378call_function.4 = call $372load_global.1(tri, num_tri, func=$372load_global.1, args=[Var(tri, final_2D_robust_multidimarr.py:460), Var(num_tri, final_2D_robust_multidimarr.py:426)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
                del $372load_global.1
                $380get_iter.5 = getiter(value=$378call_function.4) :: range_iter_int64
                del $378call_function.4
                $phi382.1 = $380get_iter.5 :: range_iter_int64
                del $380get_iter.5
                jump 382
              label 382
                $382for_iter.2 = iternext(value=$phi382.1) :: pair<int64, bool>
                $382for_iter.3 = pair_first(value=$382for_iter.2) :: int64
                $382for_iter.4 = pair_second(value=$382for_iter.2) :: bool
                del $382for_iter.2
                $phi384.2 = $382for_iter.3 :: int64
                del $382for_iter.3
                branch $382for_iter.4, 384, 534
              label 384
                del $382for_iter.4
                t = $phi384.2 :: int64
                del $phi384.2
462:                 vertices_ID[t, 0] = vertices_ID[t+1, 0]
                    $const390.5 = const(int, 1) :: Literal[int](1)
                    $392binary_add.6 = t + $const390.5 :: int64
                    del $const390.5
                    $const394.7 = const(int, 0) :: Literal[int](0)
                    $396build_tuple.8 = build_tuple(items=[Var($392binary_add.6, final_2D_robust_multidimarr.py:462), Var($const394.7, final_2D_robust_multidimarr.py:462)]) :: Tuple(int64, Literal[int](0))
                    del $const394.7
                    del $392binary_add.6
                    $398binary_subscr.9 = getitem(value=vertices_ID, index=$396build_tuple.8) :: int64
                    del $396build_tuple.8
                    $const404.12 = const(int, 0) :: Literal[int](0)
                    $406build_tuple.13 = build_tuple(items=[Var(t, final_2D_robust_multidimarr.py:461), Var($const404.12, final_2D_robust_multidimarr.py:462)]) :: Tuple(int64, Literal[int](0))
                    del $const404.12
                    vertices_ID[$406build_tuple.13] = $398binary_subscr.9 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                    del $406build_tuple.13
                    del $398binary_subscr.9
463:                 vertices_ID[t, 1] = vertices_ID[t+1, 1]
                    $const414.16 = const(int, 1) :: Literal[int](1)
                    $416binary_add.17 = t + $const414.16 :: int64
                    del $const414.16
                    $const418.18 = const(int, 1) :: Literal[int](1)
                    $420build_tuple.19 = build_tuple(items=[Var($416binary_add.17, final_2D_robust_multidimarr.py:463), Var($const418.18, final_2D_robust_multidimarr.py:463)]) :: Tuple(int64, Literal[int](1))
                    del $const418.18
                    del $416binary_add.17
                    $422binary_subscr.20 = getitem(value=vertices_ID, index=$420build_tuple.19) :: int64
                    del $420build_tuple.19
                    $const428.23 = const(int, 1) :: Literal[int](1)
                    $430build_tuple.24 = build_tuple(items=[Var(t, final_2D_robust_multidimarr.py:461), Var($const428.23, final_2D_robust_multidimarr.py:463)]) :: Tuple(int64, Literal[int](1))
                    del $const428.23
                    vertices_ID[$430build_tuple.24] = $422binary_subscr.20 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                    del $430build_tuple.24
                    del $422binary_subscr.20
464:                 vertices_ID[t, 2] = vertices_ID[t+1, 2]
                    $const438.27 = const(int, 1) :: Literal[int](1)
                    $440binary_add.28 = t + $const438.27 :: int64
                    del $const438.27
                    $const442.29 = const(int, 2) :: Literal[int](2)
                    $444build_tuple.30 = build_tuple(items=[Var($440binary_add.28, final_2D_robust_multidimarr.py:464), Var($const442.29, final_2D_robust_multidimarr.py:464)]) :: Tuple(int64, Literal[int](2))
                    del $const442.29
                    del $440binary_add.28
                    $446binary_subscr.31 = getitem(value=vertices_ID, index=$444build_tuple.30) :: int64
                    del $444build_tuple.30
                    $const452.34 = const(int, 2) :: Literal[int](2)
                    $454build_tuple.35 = build_tuple(items=[Var(t, final_2D_robust_multidimarr.py:461), Var($const452.34, final_2D_robust_multidimarr.py:464)]) :: Tuple(int64, Literal[int](2))
                    del $const452.34
                    vertices_ID[$454build_tuple.35] = $446binary_subscr.31 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                    del $454build_tuple.35
                    del $446binary_subscr.31
465:
466:                 neighbour_ID[t, 0] = neighbour_ID[t+1, 0]
                    $const462.38 = const(int, 1) :: Literal[int](1)
                    $464binary_add.39 = t + $const462.38 :: int64
                    del $const462.38
                    $const466.40 = const(int, 0) :: Literal[int](0)
                    $468build_tuple.41 = build_tuple(items=[Var($464binary_add.39, final_2D_robust_multidimarr.py:466), Var($const466.40, final_2D_robust_multidimarr.py:466)]) :: Tuple(int64, Literal[int](0))
                    del $const466.40
                    del $464binary_add.39
                    $470binary_subscr.42 = getitem(value=neighbour_ID, index=$468build_tuple.41) :: int64
                    del $468build_tuple.41
                    $const476.45 = const(int, 0) :: Literal[int](0)
                    $478build_tuple.46 = build_tuple(items=[Var(t, final_2D_robust_multidimarr.py:461), Var($const476.45, final_2D_robust_multidimarr.py:466)]) :: Tuple(int64, Literal[int](0))
                    del $const476.45
                    neighbour_ID[$478build_tuple.46] = $470binary_subscr.42 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                    del $478build_tuple.46
                    del $470binary_subscr.42
467:                 neighbour_ID[t, 1] = neighbour_ID[t+1, 1]
                    $const486.49 = const(int, 1) :: Literal[int](1)
                    $488binary_add.50 = t + $const486.49 :: int64
                    del $const486.49
                    $const490.51 = const(int, 1) :: Literal[int](1)
                    $492build_tuple.52 = build_tuple(items=[Var($488binary_add.50, final_2D_robust_multidimarr.py:467), Var($const490.51, final_2D_robust_multidimarr.py:467)]) :: Tuple(int64, Literal[int](1))
                    del $const490.51
                    del $488binary_add.50
                    $494binary_subscr.53 = getitem(value=neighbour_ID, index=$492build_tuple.52) :: int64
                    del $492build_tuple.52
                    $const500.56 = const(int, 1) :: Literal[int](1)
                    $502build_tuple.57 = build_tuple(items=[Var(t, final_2D_robust_multidimarr.py:461), Var($const500.56, final_2D_robust_multidimarr.py:467)]) :: Tuple(int64, Literal[int](1))
                    del $const500.56
                    neighbour_ID[$502build_tuple.57] = $494binary_subscr.53 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                    del $502build_tuple.57
                    del $494binary_subscr.53
468:                 neighbour_ID[t, 2] = neighbour_ID[t+1, 2]
                    $const510.60 = const(int, 1) :: Literal[int](1)
                    $512binary_add.61 = t + $const510.60 :: int64
                    del $const510.60
                    $const514.62 = const(int, 2) :: Literal[int](2)
                    $516build_tuple.63 = build_tuple(items=[Var($512binary_add.61, final_2D_robust_multidimarr.py:468), Var($const514.62, final_2D_robust_multidimarr.py:468)]) :: Tuple(int64, Literal[int](2))
                    del $const514.62
                    del $512binary_add.61
                    $518binary_subscr.64 = getitem(value=neighbour_ID, index=$516build_tuple.63) :: int64
                    del $516build_tuple.63
                    $const524.67 = const(int, 2) :: Literal[int](2)
                    $526build_tuple.68 = build_tuple(items=[Var(t, final_2D_robust_multidimarr.py:461), Var($const524.67, final_2D_robust_multidimarr.py:468)]) :: Tuple(int64, Literal[int](2))
                    del t
                    del $const524.67
                    neighbour_ID[$526build_tuple.68] = $518binary_subscr.64 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                    del $526build_tuple.68
                    del $518binary_subscr.64
                    jump 382
                  label 534
469:
470:             num_tri -= 1
                del $phi384.2
                del $phi382.1
                del $382for_iter.4
                jump 536
              label 536
                $const538.2 = const(int, 1) :: Literal[int](1)
                $540inplace_subtract.3 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=num_tri, rhs=$const538.2, static_lhs=Undefined, static_rhs=Undefined) :: int64
                del $const538.2
                num_tri = $540inplace_subtract.3 :: int64
                del $540inplace_subtract.3
471:
472:             for i in range(num_tri):
                jump 544
              label 544
                $546load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
                $550call_function.3 = call $546load_global.1(num_tri, func=$546load_global.1, args=[Var(num_tri, final_2D_robust_multidimarr.py:426)], kws=(), vararg=None) :: (int64,) -> range_state_int64
                del $546load_global.1
                $552get_iter.4 = getiter(value=$550call_function.3) :: range_iter_int64
                del $550call_function.3
                $phi554.1 = $552get_iter.4 :: range_iter_int64
                del $552get_iter.4
                jump 554
              label 554
                $554for_iter.2 = iternext(value=$phi554.1) :: pair<int64, bool>
                $554for_iter.3 = pair_first(value=$554for_iter.2) :: int64
                $554for_iter.4 = pair_second(value=$554for_iter.2) :: bool
                del $554for_iter.2
                $phi556.2 = $554for_iter.3 :: int64
                del $554for_iter.3
                branch $554for_iter.4, 556, 652
              label 556
                del $554for_iter.4
                i = $phi556.2 :: int64
                del $phi556.2
473:                 for j in range(3):
                    jump 558
                  label 558
                    $560load_global.2 = global(range: <class 'range'>) :: Function(<class 'range'>)
                    $const562.3 = const(int, 3) :: Literal[int](3)
                    $564call_function.4 = call $560load_global.2($const562.3, func=$560load_global.2, args=[Var($const562.3, final_2D_robust_multidimarr.py:473)], kws=(), vararg=None) :: (int64,) -> range_state_int64
                    del $const562.3
                    del $560load_global.2
                    $566get_iter.5 = getiter(value=$564call_function.4) :: range_iter_int64
                    del $564call_function.4
                    $phi568.2 = $566get_iter.5 :: range_iter_int64
                    del $566get_iter.5
                    jump 568
                  label 568
                    $568for_iter.3 = iternext(value=$phi568.2) :: pair<int64, bool>
                    $568for_iter.4 = pair_first(value=$568for_iter.3) :: int64
                    $568for_iter.5 = pair_second(value=$568for_iter.3) :: bool
                    del $568for_iter.3
                    $phi570.3 = $568for_iter.4 :: int64
                    del $568for_iter.4
                    branch $568for_iter.5, 570, 646
                  label 570
                    del $568for_iter.5
                    j = $phi570.3 :: int64
                    del $phi570.3
                  label 717
                    del j
                    del $588compare_op.12
                    jump 568
474:                     if neighbour_ID[i, j]//3 > tri:
                        $578build_tuple.7 = build_tuple(items=[Var(i, final_2D_robust_multidimarr.py:426), Var(j, final_2D_robust_multidimarr.py:445)]) :: UniTuple(int64 x 2)
                        $580binary_subscr.8 = getitem(value=neighbour_ID, index=$578build_tuple.7) :: int64
                        del $578build_tuple.7
                        $const582.9 = const(int, 3) :: Literal[int](3)
                        $584binary_floor_divide.10 = $580binary_subscr.8 // $const582.9 :: int64
                        del $const582.9
                        del $580binary_subscr.8
                        $588compare_op.12 = $584binary_floor_divide.10 > tri :: bool
                        del $584binary_floor_divide.10
                        branch $588compare_op.12, 594, 717
475:                         neighbour_ID[i, j] = 3*(neighbour_ID[i, j]//3-1) + \
                          label 594
                            del $588compare_op.12
                            $const594.3 = const(int, 3) :: Literal[int](3)
                            $602build_tuple.7 = build_tuple(items=[Var(i, final_2D_robust_multidimarr.py:426), Var(j, final_2D_robust_multidimarr.py:445)]) :: UniTuple(int64 x 2)
                            $604binary_subscr.8 = getitem(value=neighbour_ID, index=$602build_tuple.7) :: int64
                            del $602build_tuple.7
                            $const606.9 = const(int, 3) :: Literal[int](3)
                            $608binary_floor_divide.10 = $604binary_subscr.8 // $const606.9 :: int64
                            del $const606.9
                            del $604binary_subscr.8
                            $const610.11 = const(int, 1) :: Literal[int](1)
                            $612binary_subtract.12 = $608binary_floor_divide.10 - $const610.11 :: int64
                            del $const610.11
                            del $608binary_floor_divide.10
                            $614binary_multiply.13 = $const594.3 * $612binary_subtract.12 :: int64
                            del $const594.3
                            del $612binary_subtract.12
476:                                               neighbour_ID[i, j] % 3
                                                  $622build_tuple.17 = build_tuple(items=[Var(i, final_2D_robust_multidimarr.py:426), Var(j, final_2D_robust_multidimarr.py:445)]) :: UniTuple(int64 x 2)
                                                  $624binary_subscr.18 = getitem(value=neighbour_ID, index=$622build_tuple.17) :: int64
                                                  del $622build_tuple.17
                                                  $const626.19 = const(int, 3) :: Literal[int](3)
                                                  $628binary_modulo.20 = $624binary_subscr.18 % $const626.19 :: int64
                                                  del $const626.19
                                                  del $624binary_subscr.18
                                                  $630binary_add.21 = $614binary_multiply.13 + $628binary_modulo.20 :: int64
                                                  del $628binary_modulo.20
                                                  del $614binary_multiply.13
                                                  $638build_tuple.25 = build_tuple(items=[Var(i, final_2D_robust_multidimarr.py:426), Var(j, final_2D_robust_multidimarr.py:445)]) :: UniTuple(int64 x 2)
                                                  del j
                                                  neighbour_ID[$638build_tuple.25] = $630binary_add.21 :: (array(int64, 2d, C), UniTuple(int64 x 2), int64) -> none
                                                  del $638build_tuple.25
                                                  del $630binary_add.21
                                                  jump 717
                                                label 646
                                                  del i
                                                  del $phi570.3
                                                  del $phi568.2
                                                  del $568for_iter.5
                                                  jump 648
                                                label 648
                                                  jump 554
                                                label 652
477:
478:             for i in range(k+1, bad_tri_end):
                del $phi556.2
                del $phi554.1
                del $554for_iter.4
                jump 654
              label 654
                $656load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
                $const660.3 = const(int, 1) :: Literal[int](1)
                $662binary_add.4 = k + $const660.3 :: int64
                del k
                del $const660.3
                $666call_function.6 = call $656load_global.1($662binary_add.4, bad_tri_end, func=$656load_global.1, args=[Var($662binary_add.4, final_2D_robust_multidimarr.py:478), Var(bad_tri_end, final_2D_robust_multidimarr.py:426)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
                del $662binary_add.4
                del $656load_global.1
                $668get_iter.7 = getiter(value=$666call_function.6) :: range_iter_int64
                del $666call_function.6
                $phi670.1 = $668get_iter.7 :: range_iter_int64
                del $668get_iter.7
                jump 670
              label 670
                $670for_iter.2 = iternext(value=$phi670.1) :: pair<int64, bool>
                $670for_iter.3 = pair_first(value=$670for_iter.2) :: int64
                $670for_iter.4 = pair_second(value=$670for_iter.2) :: bool
                del $670for_iter.2
                $phi672.2 = $670for_iter.3 :: int64
                del $670for_iter.3
                branch $670for_iter.4, 672, 708
              label 672
                del $670for_iter.4
                i = $phi672.2 :: int64
                del $phi672.2
              label 718
                del i
                del $682compare_op.7
                jump 670
479:                 if bad_tri[i] > tri:
                    $678binary_subscr.5 = getitem(value=bad_tri, index=i) :: int64
                    $682compare_op.7 = $678binary_subscr.5 > tri :: bool
                    del $678binary_subscr.5
                    branch $682compare_op.7, 688, 718
480:                     bad_tri[i] -= 1
                      label 688
                        del $682compare_op.7
                        $694binary_subscr.6 = getitem(value=bad_tri, index=i) :: int64
                        $const696.7 = const(int, 1) :: Literal[int](1)
                        $698inplace_subtract.8 = inplace_binop(fn=<built-in function isub>, immutable_fn=<built-in function sub>, lhs=$694binary_subscr.6, rhs=$const696.7, static_lhs=Undefined, static_rhs=Undefined) :: int64
                        del $const696.7
                        del $694binary_subscr.6
                        bad_tri[i] = $698inplace_subtract.8 :: (array(int64, 1d, C), int64, int64) -> none
                        del i
                        del $698inplace_subtract.8
                        jump 718
                      label 708
                        del tri
                        del $phi672.2
                        del $phi670.1
                        del $670for_iter.4
                        jump 710
                      label 710
                        jump 356
                      label 714
481:
482:     return num_tri, old_tri
        del vertices_ID
        del neighbour_ID
        del bad_tri_end
        del bad_tri
        del $phi360.1
        del $phi356.0
        del $356for_iter.3
        jump 716
      label 716
        del vertices_ID
        del neighbour_ID
        del boundary_tri_end
        del bad_tri_end
        del bad_tri
        del $324compare_op.7
        $720build_tuple.2 = build_tuple(items=[Var(num_tri, final_2D_robust_multidimarr.py:426), Var(old_tri, final_2D_robust_multidimarr.py:455)]) :: UniTuple(int64 x 2)
        del old_tri
        del num_tri
        $722return_value.3 = cast(value=$720build_tuple.2) :: UniTuple(int64 x 2)
        del $720build_tuple.2
        return $722return_value.3



Function name: assembly
in file: final_2D_robust_multidimarr.py
with signature: (int64, array(int64, 1d, C), array(int64, 1d, C), array(int64, 2d, C), array(float64, 2d, C), array(int64, 2d, C), array(int64, 2d, C), int64, int64, array(bool, 1d, C), array(float64, 1d, C), array(int64, 1d, C), array(int64, 1d, C)) -> int64
485: @njit
486: def assembly(
487:         old_tri, ic_bad_tri, ic_boundary_tri, ic_boundary_vtx, points,
488:         vertices_ID, neighbour_ID, num_tri, gv, bad_tri_indicator_arr,
489:         global_arr, orient2d_count, incircle_count):
490:
491:     resulterrbound, ccwerrboundA, ccwerrboundB, ccwerrboundC, iccerrboundA, \
492:     iccerrboundB, iccerrboundC, splitter, static_filter_o2d, \
493:     static_filter_i2d = exactinit2d(points)
      label 0
        old_tri = arg(0, name=old_tri) :: int64
        ic_bad_tri = arg(1, name=ic_bad_tri) :: array(int64, 1d, C)
        ic_boundary_tri = arg(2, name=ic_boundary_tri) :: array(int64, 1d, C)
        ic_boundary_vtx = arg(3, name=ic_boundary_vtx) :: array(int64, 2d, C)
        points = arg(4, name=points) :: array(float64, 2d, C)
        vertices_ID = arg(5, name=vertices_ID) :: array(int64, 2d, C)
        neighbour_ID = arg(6, name=neighbour_ID) :: array(int64, 2d, C)
        num_tri = arg(7, name=num_tri) :: int64
        gv = arg(8, name=gv) :: int64
        bad_tri_indicator_arr = arg(9, name=bad_tri_indicator_arr) :: array(bool, 1d, C)
        global_arr = arg(10, name=global_arr) :: array(float64, 1d, C)
        orient2d_count = arg(11, name=orient2d_count) :: array(int64, 1d, C)
        incircle_count = arg(12, name=incircle_count) :: array(int64, 1d, C)
        $2load_global.0 = global(exactinit2d: CPUDispatcher(<function exactinit2d at 0x7f51d445a200>)) :: type(CPUDispatcher(<function exactinit2d at 0x7f51d445a200>))
        $6call_function.2 = call $2load_global.0(points, func=$2load_global.0, args=[Var(points, final_2D_robust_multidimarr.py:493)], kws=(), vararg=None) :: (array(float64, 2d, C),) -> UniTuple(float64 x 10)
        del $2load_global.0
        $8unpack_sequence.13 = exhaust_iter(value=$6call_function.2, count=10) :: UniTuple(float64 x 10)
        del $6call_function.2
        $8unpack_sequence.3 = static_getitem(value=$8unpack_sequence.13, index=0, index_var=None) :: float64
        $8unpack_sequence.4 = static_getitem(value=$8unpack_sequence.13, index=1, index_var=None) :: float64
        $8unpack_sequence.5 = static_getitem(value=$8unpack_sequence.13, index=2, index_var=None) :: float64
        $8unpack_sequence.6 = static_getitem(value=$8unpack_sequence.13, index=3, index_var=None) :: float64
        $8unpack_sequence.7 = static_getitem(value=$8unpack_sequence.13, index=4, index_var=None) :: float64
        $8unpack_sequence.8 = static_getitem(value=$8unpack_sequence.13, index=5, index_var=None) :: float64
        $8unpack_sequence.9 = static_getitem(value=$8unpack_sequence.13, index=6, index_var=None) :: float64
        $8unpack_sequence.10 = static_getitem(value=$8unpack_sequence.13, index=7, index_var=None) :: float64
        $8unpack_sequence.11 = static_getitem(value=$8unpack_sequence.13, index=8, index_var=None) :: float64
        $8unpack_sequence.12 = static_getitem(value=$8unpack_sequence.13, index=9, index_var=None) :: float64
        del $8unpack_sequence.13
        resulterrbound = $8unpack_sequence.3 :: float64
        del $8unpack_sequence.3
        ccwerrboundA = $8unpack_sequence.4 :: float64
        del $8unpack_sequence.4
        ccwerrboundB = $8unpack_sequence.5 :: float64
        del $8unpack_sequence.5
        ccwerrboundC = $8unpack_sequence.6 :: float64
        del $8unpack_sequence.6
        iccerrboundA = $8unpack_sequence.7 :: float64
        del $8unpack_sequence.7
        iccerrboundB = $8unpack_sequence.8 :: float64
        del $8unpack_sequence.8
        iccerrboundC = $8unpack_sequence.9 :: float64
        del $8unpack_sequence.9
        splitter = $8unpack_sequence.10 :: float64
        del $8unpack_sequence.10
        static_filter_o2d = $8unpack_sequence.11 :: float64
        del $8unpack_sequence.11
        static_filter_i2d = $8unpack_sequence.12 :: float64
        del $8unpack_sequence.12
494:     B = global_arr[0:4]
        $const32.15 = const(int, 0) :: Literal[int](0)
        $const34.16 = const(int, 4) :: Literal[int](4)
        $36build_slice.17 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $36build_slice.18 = call $36build_slice.17($const32.15, $const34.16, func=$36build_slice.17, args=(Var($const32.15, final_2D_robust_multidimarr.py:494), Var($const34.16, final_2D_robust_multidimarr.py:494)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const34.16
        del $const32.15
        del $36build_slice.17
        $38binary_subscr.19 = static_getitem(value=global_arr, index=slice(0, 4, None), index_var=$36build_slice.18) :: array(float64, 1d, C)
        del $36build_slice.18
        B = $38binary_subscr.19 :: array(float64, 1d, C)
        del $38binary_subscr.19
495:     C1 = global_arr[4:12]
        $const44.21 = const(int, 4) :: Literal[int](4)
        $const46.22 = const(int, 12) :: Literal[int](12)
        $48build_slice.23 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $48build_slice.24 = call $48build_slice.23($const44.21, $const46.22, func=$48build_slice.23, args=(Var($const44.21, final_2D_robust_multidimarr.py:495), Var($const46.22, final_2D_robust_multidimarr.py:495)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const46.22
        del $const44.21
        del $48build_slice.23
        $50binary_subscr.25 = static_getitem(value=global_arr, index=slice(4, 12, None), index_var=$48build_slice.24) :: array(float64, 1d, C)
        del $48build_slice.24
        C1 = $50binary_subscr.25 :: array(float64, 1d, C)
        del $50binary_subscr.25
496:     C2 = global_arr[12:24]
        $const56.27 = const(int, 12) :: Literal[int](12)
        $const58.28 = const(int, 24) :: Literal[int](24)
        $60build_slice.29 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $60build_slice.30 = call $60build_slice.29($const56.27, $const58.28, func=$60build_slice.29, args=(Var($const56.27, final_2D_robust_multidimarr.py:496), Var($const58.28, final_2D_robust_multidimarr.py:496)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const58.28
        del $const56.27
        del $60build_slice.29
        $62binary_subscr.31 = static_getitem(value=global_arr, index=slice(12, 24, None), index_var=$60build_slice.30) :: array(float64, 1d, C)
        del $60build_slice.30
        C2 = $62binary_subscr.31 :: array(float64, 1d, C)
        del $62binary_subscr.31
497:     D = global_arr[24:40]
        $const68.33 = const(int, 24) :: Literal[int](24)
        $const70.34 = const(int, 40) :: Literal[int](40)
        $72build_slice.35 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $72build_slice.36 = call $72build_slice.35($const68.33, $const70.34, func=$72build_slice.35, args=(Var($const68.33, final_2D_robust_multidimarr.py:497), Var($const70.34, final_2D_robust_multidimarr.py:497)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const70.34
        del $const68.33
        del $72build_slice.35
        $74binary_subscr.37 = static_getitem(value=global_arr, index=slice(24, 40, None), index_var=$72build_slice.36) :: array(float64, 1d, C)
        del $72build_slice.36
        D = $74binary_subscr.37 :: array(float64, 1d, C)
        del $74binary_subscr.37
498:     u = global_arr[40:44]
        $const80.39 = const(int, 40) :: Literal[int](40)
        $const82.40 = const(int, 44) :: Literal[int](44)
        $84build_slice.41 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $84build_slice.42 = call $84build_slice.41($const80.39, $const82.40, func=$84build_slice.41, args=(Var($const80.39, final_2D_robust_multidimarr.py:498), Var($const82.40, final_2D_robust_multidimarr.py:498)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const82.40
        del $const80.39
        del $84build_slice.41
        $86binary_subscr.43 = static_getitem(value=global_arr, index=slice(40, 44, None), index_var=$84build_slice.42) :: array(float64, 1d, C)
        del $84build_slice.42
        u = $86binary_subscr.43 :: array(float64, 1d, C)
        del $86binary_subscr.43
499:     v = global_arr[44:48]
        $const92.45 = const(int, 44) :: Literal[int](44)
        $const94.46 = const(int, 48) :: Literal[int](48)
        $96build_slice.47 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $96build_slice.48 = call $96build_slice.47($const92.45, $const94.46, func=$96build_slice.47, args=(Var($const92.45, final_2D_robust_multidimarr.py:499), Var($const94.46, final_2D_robust_multidimarr.py:499)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const94.46
        del $const92.45
        del $96build_slice.47
        $98binary_subscr.49 = static_getitem(value=global_arr, index=slice(44, 48, None), index_var=$96build_slice.48) :: array(float64, 1d, C)
        del $96build_slice.48
        v = $98binary_subscr.49 :: array(float64, 1d, C)
        del $98binary_subscr.49
500:     bc = global_arr[48:52]
        $const104.51 = const(int, 48) :: Literal[int](48)
        $const106.52 = const(int, 52) :: Literal[int](52)
        $108build_slice.53 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $108build_slice.54 = call $108build_slice.53($const104.51, $const106.52, func=$108build_slice.53, args=(Var($const104.51, final_2D_robust_multidimarr.py:500), Var($const106.52, final_2D_robust_multidimarr.py:500)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const106.52
        del $const104.51
        del $108build_slice.53
        $110binary_subscr.55 = static_getitem(value=global_arr, index=slice(48, 52, None), index_var=$108build_slice.54) :: array(float64, 1d, C)
        del $108build_slice.54
        bc = $110binary_subscr.55 :: array(float64, 1d, C)
        del $110binary_subscr.55
501:     ca = global_arr[52:56]
        $const116.57 = const(int, 52) :: Literal[int](52)
        $const118.58 = const(int, 56) :: Literal[int](56)
        $120build_slice.59 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $120build_slice.60 = call $120build_slice.59($const116.57, $const118.58, func=$120build_slice.59, args=(Var($const116.57, final_2D_robust_multidimarr.py:501), Var($const118.58, final_2D_robust_multidimarr.py:501)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const118.58
        del $const116.57
        del $120build_slice.59
        $122binary_subscr.61 = static_getitem(value=global_arr, index=slice(52, 56, None), index_var=$120build_slice.60) :: array(float64, 1d, C)
        del $120build_slice.60
        ca = $122binary_subscr.61 :: array(float64, 1d, C)
        del $122binary_subscr.61
502:     ab = global_arr[56:60]
        $const128.63 = const(int, 56) :: Literal[int](56)
        $const130.64 = const(int, 60) :: Literal[int](60)
        $132build_slice.65 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $132build_slice.66 = call $132build_slice.65($const128.63, $const130.64, func=$132build_slice.65, args=(Var($const128.63, final_2D_robust_multidimarr.py:502), Var($const130.64, final_2D_robust_multidimarr.py:502)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const130.64
        del $const128.63
        del $132build_slice.65
        $134binary_subscr.67 = static_getitem(value=global_arr, index=slice(56, 60, None), index_var=$132build_slice.66) :: array(float64, 1d, C)
        del $132build_slice.66
        ab = $134binary_subscr.67 :: array(float64, 1d, C)
        del $134binary_subscr.67
503:     axbc = global_arr[60:68]
        $const140.69 = const(int, 60) :: Literal[int](60)
        $const142.70 = const(int, 68) :: Literal[int](68)
        $144build_slice.71 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $144build_slice.72 = call $144build_slice.71($const140.69, $const142.70, func=$144build_slice.71, args=(Var($const140.69, final_2D_robust_multidimarr.py:503), Var($const142.70, final_2D_robust_multidimarr.py:503)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const142.70
        del $const140.69
        del $144build_slice.71
        $146binary_subscr.73 = static_getitem(value=global_arr, index=slice(60, 68, None), index_var=$144build_slice.72) :: array(float64, 1d, C)
        del $144build_slice.72
        axbc = $146binary_subscr.73 :: array(float64, 1d, C)
        del $146binary_subscr.73
504:     axxbc = global_arr[68:84]
        $const152.75 = const(int, 68) :: Literal[int](68)
        $const154.76 = const(int, 84) :: Literal[int](84)
        $156build_slice.77 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $156build_slice.78 = call $156build_slice.77($const152.75, $const154.76, func=$156build_slice.77, args=(Var($const152.75, final_2D_robust_multidimarr.py:504), Var($const154.76, final_2D_robust_multidimarr.py:504)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const154.76
        del $const152.75
        del $156build_slice.77
        $158binary_subscr.79 = static_getitem(value=global_arr, index=slice(68, 84, None), index_var=$156build_slice.78) :: array(float64, 1d, C)
        del $156build_slice.78
        axxbc = $158binary_subscr.79 :: array(float64, 1d, C)
        del $158binary_subscr.79
505:     aybc = global_arr[84:92]
        $const164.81 = const(int, 84) :: Literal[int](84)
        $const166.82 = const(int, 92) :: Literal[int](92)
        $168build_slice.83 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $168build_slice.84 = call $168build_slice.83($const164.81, $const166.82, func=$168build_slice.83, args=(Var($const164.81, final_2D_robust_multidimarr.py:505), Var($const166.82, final_2D_robust_multidimarr.py:505)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const166.82
        del $const164.81
        del $168build_slice.83
        $170binary_subscr.85 = static_getitem(value=global_arr, index=slice(84, 92, None), index_var=$168build_slice.84) :: array(float64, 1d, C)
        del $168build_slice.84
        aybc = $170binary_subscr.85 :: array(float64, 1d, C)
        del $170binary_subscr.85
506:     ayybc = global_arr[92:108]
        $const176.87 = const(int, 92) :: Literal[int](92)
        $const178.88 = const(int, 108) :: Literal[int](108)
        $180build_slice.89 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $180build_slice.90 = call $180build_slice.89($const176.87, $const178.88, func=$180build_slice.89, args=(Var($const176.87, final_2D_robust_multidimarr.py:506), Var($const178.88, final_2D_robust_multidimarr.py:506)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const178.88
        del $const176.87
        del $180build_slice.89
        $182binary_subscr.91 = static_getitem(value=global_arr, index=slice(92, 108, None), index_var=$180build_slice.90) :: array(float64, 1d, C)
        del $180build_slice.90
        ayybc = $182binary_subscr.91 :: array(float64, 1d, C)
        del $182binary_subscr.91
507:     adet = global_arr[108:140]
        $const188.93 = const(int, 108) :: Literal[int](108)
        $const190.94 = const(int, 140) :: Literal[int](140)
        $192build_slice.95 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $192build_slice.96 = call $192build_slice.95($const188.93, $const190.94, func=$192build_slice.95, args=(Var($const188.93, final_2D_robust_multidimarr.py:507), Var($const190.94, final_2D_robust_multidimarr.py:507)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const190.94
        del $const188.93
        del $192build_slice.95
        $194binary_subscr.97 = static_getitem(value=global_arr, index=slice(108, 140, None), index_var=$192build_slice.96) :: array(float64, 1d, C)
        del $192build_slice.96
        adet = $194binary_subscr.97 :: array(float64, 1d, C)
        del $194binary_subscr.97
508:     bxca = global_arr[140:148]
        $const200.99 = const(int, 140) :: Literal[int](140)
        $const202.100 = const(int, 148) :: Literal[int](148)
        $204build_slice.101 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $204build_slice.102 = call $204build_slice.101($const200.99, $const202.100, func=$204build_slice.101, args=(Var($const200.99, final_2D_robust_multidimarr.py:508), Var($const202.100, final_2D_robust_multidimarr.py:508)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const202.100
        del $const200.99
        del $204build_slice.101
        $206binary_subscr.103 = static_getitem(value=global_arr, index=slice(140, 148, None), index_var=$204build_slice.102) :: array(float64, 1d, C)
        del $204build_slice.102
        bxca = $206binary_subscr.103 :: array(float64, 1d, C)
        del $206binary_subscr.103
509:     bxxca = global_arr[148:164]
        $const212.105 = const(int, 148) :: Literal[int](148)
        $const214.106 = const(int, 164) :: Literal[int](164)
        $216build_slice.107 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $216build_slice.108 = call $216build_slice.107($const212.105, $const214.106, func=$216build_slice.107, args=(Var($const212.105, final_2D_robust_multidimarr.py:509), Var($const214.106, final_2D_robust_multidimarr.py:509)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const214.106
        del $const212.105
        del $216build_slice.107
        $218binary_subscr.109 = static_getitem(value=global_arr, index=slice(148, 164, None), index_var=$216build_slice.108) :: array(float64, 1d, C)
        del $216build_slice.108
        bxxca = $218binary_subscr.109 :: array(float64, 1d, C)
        del $218binary_subscr.109
510:     byca = global_arr[164:172]
        $const224.111 = const(int, 164) :: Literal[int](164)
        $const226.112 = const(int, 172) :: Literal[int](172)
        $228build_slice.113 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $228build_slice.114 = call $228build_slice.113($const224.111, $const226.112, func=$228build_slice.113, args=(Var($const224.111, final_2D_robust_multidimarr.py:510), Var($const226.112, final_2D_robust_multidimarr.py:510)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const226.112
        del $const224.111
        del $228build_slice.113
        $230binary_subscr.115 = static_getitem(value=global_arr, index=slice(164, 172, None), index_var=$228build_slice.114) :: array(float64, 1d, C)
        del $228build_slice.114
        byca = $230binary_subscr.115 :: array(float64, 1d, C)
        del $230binary_subscr.115
511:     byyca = global_arr[172:188]
        $const236.117 = const(int, 172) :: Literal[int](172)
        $const238.118 = const(int, 188) :: Literal[int](188)
        $240build_slice.119 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $240build_slice.120 = call $240build_slice.119($const236.117, $const238.118, func=$240build_slice.119, args=(Var($const236.117, final_2D_robust_multidimarr.py:511), Var($const238.118, final_2D_robust_multidimarr.py:511)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const238.118
        del $const236.117
        del $240build_slice.119
        $242binary_subscr.121 = static_getitem(value=global_arr, index=slice(172, 188, None), index_var=$240build_slice.120) :: array(float64, 1d, C)
        del $240build_slice.120
        byyca = $242binary_subscr.121 :: array(float64, 1d, C)
        del $242binary_subscr.121
512:     bdet = global_arr[188:220]
        $const248.123 = const(int, 188) :: Literal[int](188)
        $const250.124 = const(int, 220) :: Literal[int](220)
        $252build_slice.125 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $252build_slice.126 = call $252build_slice.125($const248.123, $const250.124, func=$252build_slice.125, args=(Var($const248.123, final_2D_robust_multidimarr.py:512), Var($const250.124, final_2D_robust_multidimarr.py:512)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const250.124
        del $const248.123
        del $252build_slice.125
        $254binary_subscr.127 = static_getitem(value=global_arr, index=slice(188, 220, None), index_var=$252build_slice.126) :: array(float64, 1d, C)
        del $252build_slice.126
        bdet = $254binary_subscr.127 :: array(float64, 1d, C)
        del $254binary_subscr.127
513:     cxab = global_arr[220:228]
        $const260.129 = const(int, 220) :: Literal[int](220)
        $const262.130 = const(int, 228) :: Literal[int](228)
        $264build_slice.131 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $264build_slice.132 = call $264build_slice.131($const260.129, $const262.130, func=$264build_slice.131, args=(Var($const260.129, final_2D_robust_multidimarr.py:513), Var($const262.130, final_2D_robust_multidimarr.py:513)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const262.130
        del $const260.129
        del $264build_slice.131
        $266binary_subscr.133 = static_getitem(value=global_arr, index=slice(220, 228, None), index_var=$264build_slice.132) :: array(float64, 1d, C)
        del $264build_slice.132
        cxab = $266binary_subscr.133 :: array(float64, 1d, C)
        del $266binary_subscr.133
514:     cxxab = global_arr[228:244]
        $const272.135 = const(int, 228) :: Literal[int](228)
        $const274.136 = const(int, 244) :: Literal[int](244)
        $276build_slice.137 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $276build_slice.138 = call $276build_slice.137($const272.135, $const274.136, func=$276build_slice.137, args=(Var($const272.135, final_2D_robust_multidimarr.py:514), Var($const274.136, final_2D_robust_multidimarr.py:514)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const274.136
        del $const272.135
        del $276build_slice.137
        $278binary_subscr.139 = static_getitem(value=global_arr, index=slice(228, 244, None), index_var=$276build_slice.138) :: array(float64, 1d, C)
        del $276build_slice.138
        cxxab = $278binary_subscr.139 :: array(float64, 1d, C)
        del $278binary_subscr.139
515:     cyab = global_arr[244:252]
        $const284.141 = const(int, 244) :: Literal[int](244)
        $const286.142 = const(int, 252) :: Literal[int](252)
        $288build_slice.143 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $288build_slice.144 = call $288build_slice.143($const284.141, $const286.142, func=$288build_slice.143, args=(Var($const284.141, final_2D_robust_multidimarr.py:515), Var($const286.142, final_2D_robust_multidimarr.py:515)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const286.142
        del $const284.141
        del $288build_slice.143
        $290binary_subscr.145 = static_getitem(value=global_arr, index=slice(244, 252, None), index_var=$288build_slice.144) :: array(float64, 1d, C)
        del $288build_slice.144
        cyab = $290binary_subscr.145 :: array(float64, 1d, C)
        del $290binary_subscr.145
516:     cyyab = global_arr[252:268]
        $const296.147 = const(int, 252) :: Literal[int](252)
        $const298.148 = const(int, 268) :: Literal[int](268)
        $300build_slice.149 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $300build_slice.150 = call $300build_slice.149($const296.147, $const298.148, func=$300build_slice.149, args=(Var($const296.147, final_2D_robust_multidimarr.py:516), Var($const298.148, final_2D_robust_multidimarr.py:516)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const298.148
        del $const296.147
        del $300build_slice.149
        $302binary_subscr.151 = static_getitem(value=global_arr, index=slice(252, 268, None), index_var=$300build_slice.150) :: array(float64, 1d, C)
        del $300build_slice.150
        cyyab = $302binary_subscr.151 :: array(float64, 1d, C)
        del $302binary_subscr.151
517:     cdet = global_arr[268:300]
        $const308.153 = const(int, 268) :: Literal[int](268)
        $const310.154 = const(int, 300) :: Literal[int](300)
        $312build_slice.155 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $312build_slice.156 = call $312build_slice.155($const308.153, $const310.154, func=$312build_slice.155, args=(Var($const308.153, final_2D_robust_multidimarr.py:517), Var($const310.154, final_2D_robust_multidimarr.py:517)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const310.154
        del $const308.153
        del $312build_slice.155
        $314binary_subscr.157 = static_getitem(value=global_arr, index=slice(268, 300, None), index_var=$312build_slice.156) :: array(float64, 1d, C)
        del $312build_slice.156
        cdet = $314binary_subscr.157 :: array(float64, 1d, C)
        del $314binary_subscr.157
518:     abdet = global_arr[300:364]
        $const320.159 = const(int, 300) :: Literal[int](300)
        $const322.160 = const(int, 364) :: Literal[int](364)
        $324build_slice.161 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $324build_slice.162 = call $324build_slice.161($const320.159, $const322.160, func=$324build_slice.161, args=(Var($const320.159, final_2D_robust_multidimarr.py:518), Var($const322.160, final_2D_robust_multidimarr.py:518)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const322.160
        del $const320.159
        del $324build_slice.161
        $326binary_subscr.163 = static_getitem(value=global_arr, index=slice(300, 364, None), index_var=$324build_slice.162) :: array(float64, 1d, C)
        del $324build_slice.162
        abdet = $326binary_subscr.163 :: array(float64, 1d, C)
        del $326binary_subscr.163
519:     fin1 = global_arr[364:1516]
        $const332.165 = const(int, 364) :: Literal[int](364)
        $const334.166 = const(int, 1516) :: Literal[int](1516)
        $336build_slice.167 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $336build_slice.168 = call $336build_slice.167($const332.165, $const334.166, func=$336build_slice.167, args=(Var($const332.165, final_2D_robust_multidimarr.py:519), Var($const334.166, final_2D_robust_multidimarr.py:519)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const334.166
        del $const332.165
        del $336build_slice.167
        $338binary_subscr.169 = static_getitem(value=global_arr, index=slice(364, 1516, None), index_var=$336build_slice.168) :: array(float64, 1d, C)
        del $336build_slice.168
        fin1 = $338binary_subscr.169 :: array(float64, 1d, C)
        del $338binary_subscr.169
520:     fin2 = global_arr[1516:2668]
        $const344.171 = const(int, 1516) :: Literal[int](1516)
        $const346.172 = const(int, 2668) :: Literal[int](2668)
        $348build_slice.173 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $348build_slice.174 = call $348build_slice.173($const344.171, $const346.172, func=$348build_slice.173, args=(Var($const344.171, final_2D_robust_multidimarr.py:520), Var($const346.172, final_2D_robust_multidimarr.py:520)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const346.172
        del $const344.171
        del $348build_slice.173
        $350binary_subscr.175 = static_getitem(value=global_arr, index=slice(1516, 2668, None), index_var=$348build_slice.174) :: array(float64, 1d, C)
        del $348build_slice.174
        fin2 = $350binary_subscr.175 :: array(float64, 1d, C)
        del $350binary_subscr.175
521:     aa = global_arr[2668:2672]
        $const356.177 = const(int, 2668) :: Literal[int](2668)
        $const358.178 = const(int, 2672) :: Literal[int](2672)
        $360build_slice.179 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $360build_slice.180 = call $360build_slice.179($const356.177, $const358.178, func=$360build_slice.179, args=(Var($const356.177, final_2D_robust_multidimarr.py:521), Var($const358.178, final_2D_robust_multidimarr.py:521)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const358.178
        del $const356.177
        del $360build_slice.179
        $362binary_subscr.181 = static_getitem(value=global_arr, index=slice(2668, 2672, None), index_var=$360build_slice.180) :: array(float64, 1d, C)
        del $360build_slice.180
        aa = $362binary_subscr.181 :: array(float64, 1d, C)
        del $362binary_subscr.181
522:     bb = global_arr[2672:2676]
        $const368.183 = const(int, 2672) :: Literal[int](2672)
        $const370.184 = const(int, 2676) :: Literal[int](2676)
        $372build_slice.185 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $372build_slice.186 = call $372build_slice.185($const368.183, $const370.184, func=$372build_slice.185, args=(Var($const368.183, final_2D_robust_multidimarr.py:522), Var($const370.184, final_2D_robust_multidimarr.py:522)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const370.184
        del $const368.183
        del $372build_slice.185
        $374binary_subscr.187 = static_getitem(value=global_arr, index=slice(2672, 2676, None), index_var=$372build_slice.186) :: array(float64, 1d, C)
        del $372build_slice.186
        bb = $374binary_subscr.187 :: array(float64, 1d, C)
        del $374binary_subscr.187
523:     cc = global_arr[2676:2680]
        $const380.189 = const(int, 2676) :: Literal[int](2676)
        $const382.190 = const(int, 2680) :: Literal[int](2680)
        $384build_slice.191 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $384build_slice.192 = call $384build_slice.191($const380.189, $const382.190, func=$384build_slice.191, args=(Var($const380.189, final_2D_robust_multidimarr.py:523), Var($const382.190, final_2D_robust_multidimarr.py:523)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const382.190
        del $const380.189
        del $384build_slice.191
        $386binary_subscr.193 = static_getitem(value=global_arr, index=slice(2676, 2680, None), index_var=$384build_slice.192) :: array(float64, 1d, C)
        del $384build_slice.192
        cc = $386binary_subscr.193 :: array(float64, 1d, C)
        del $386binary_subscr.193
524:     temp8 = global_arr[2680:2688]
        $const392.195 = const(int, 2680) :: Literal[int](2680)
        $const394.196 = const(int, 2688) :: Literal[int](2688)
        $396build_slice.197 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $396build_slice.198 = call $396build_slice.197($const392.195, $const394.196, func=$396build_slice.197, args=(Var($const392.195, final_2D_robust_multidimarr.py:524), Var($const394.196, final_2D_robust_multidimarr.py:524)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const394.196
        del $const392.195
        del $396build_slice.197
        $398binary_subscr.199 = static_getitem(value=global_arr, index=slice(2680, 2688, None), index_var=$396build_slice.198) :: array(float64, 1d, C)
        del $396build_slice.198
        temp8 = $398binary_subscr.199 :: array(float64, 1d, C)
        del $398binary_subscr.199
525:     temp16a = global_arr[2688:2704]
        $const404.201 = const(int, 2688) :: Literal[int](2688)
        $const406.202 = const(int, 2704) :: Literal[int](2704)
        $408build_slice.203 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $408build_slice.204 = call $408build_slice.203($const404.201, $const406.202, func=$408build_slice.203, args=(Var($const404.201, final_2D_robust_multidimarr.py:525), Var($const406.202, final_2D_robust_multidimarr.py:525)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const406.202
        del $const404.201
        del $408build_slice.203
        $410binary_subscr.205 = static_getitem(value=global_arr, index=slice(2688, 2704, None), index_var=$408build_slice.204) :: array(float64, 1d, C)
        del $408build_slice.204
        temp16a = $410binary_subscr.205 :: array(float64, 1d, C)
        del $410binary_subscr.205
526:     temp16b = global_arr[2704:2720]
        $const416.207 = const(int, 2704) :: Literal[int](2704)
        $const418.208 = const(int, 2720) :: Literal[int](2720)
        $420build_slice.209 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $420build_slice.210 = call $420build_slice.209($const416.207, $const418.208, func=$420build_slice.209, args=(Var($const416.207, final_2D_robust_multidimarr.py:526), Var($const418.208, final_2D_robust_multidimarr.py:526)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const418.208
        del $const416.207
        del $420build_slice.209
        $422binary_subscr.211 = static_getitem(value=global_arr, index=slice(2704, 2720, None), index_var=$420build_slice.210) :: array(float64, 1d, C)
        del $420build_slice.210
        temp16b = $422binary_subscr.211 :: array(float64, 1d, C)
        del $422binary_subscr.211
527:     temp16c = global_arr[2720:2736]
        $const428.213 = const(int, 2720) :: Literal[int](2720)
        $const430.214 = const(int, 2736) :: Literal[int](2736)
        $432build_slice.215 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $432build_slice.216 = call $432build_slice.215($const428.213, $const430.214, func=$432build_slice.215, args=(Var($const428.213, final_2D_robust_multidimarr.py:527), Var($const430.214, final_2D_robust_multidimarr.py:527)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const430.214
        del $const428.213
        del $432build_slice.215
        $434binary_subscr.217 = static_getitem(value=global_arr, index=slice(2720, 2736, None), index_var=$432build_slice.216) :: array(float64, 1d, C)
        del $432build_slice.216
        temp16c = $434binary_subscr.217 :: array(float64, 1d, C)
        del $434binary_subscr.217
528:     temp32a = global_arr[2736:2768]
        $const440.219 = const(int, 2736) :: Literal[int](2736)
        $const442.220 = const(int, 2768) :: Literal[int](2768)
        $444build_slice.221 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $444build_slice.222 = call $444build_slice.221($const440.219, $const442.220, func=$444build_slice.221, args=(Var($const440.219, final_2D_robust_multidimarr.py:528), Var($const442.220, final_2D_robust_multidimarr.py:528)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const442.220
        del $const440.219
        del $444build_slice.221
        $446binary_subscr.223 = static_getitem(value=global_arr, index=slice(2736, 2768, None), index_var=$444build_slice.222) :: array(float64, 1d, C)
        del $444build_slice.222
        temp32a = $446binary_subscr.223 :: array(float64, 1d, C)
        del $446binary_subscr.223
529:     temp32b = global_arr[2768:2800]
        $const452.225 = const(int, 2768) :: Literal[int](2768)
        $const454.226 = const(int, 2800) :: Literal[int](2800)
        $456build_slice.227 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $456build_slice.228 = call $456build_slice.227($const452.225, $const454.226, func=$456build_slice.227, args=(Var($const452.225, final_2D_robust_multidimarr.py:529), Var($const454.226, final_2D_robust_multidimarr.py:529)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const454.226
        del $const452.225
        del $456build_slice.227
        $458binary_subscr.229 = static_getitem(value=global_arr, index=slice(2768, 2800, None), index_var=$456build_slice.228) :: array(float64, 1d, C)
        del $456build_slice.228
        temp32b = $458binary_subscr.229 :: array(float64, 1d, C)
        del $458binary_subscr.229
530:     temp48 = global_arr[2800:2848]
        $const464.231 = const(int, 2800) :: Literal[int](2800)
        $const466.232 = const(int, 2848) :: Literal[int](2848)
        $468build_slice.233 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $468build_slice.234 = call $468build_slice.233($const464.231, $const466.232, func=$468build_slice.233, args=(Var($const464.231, final_2D_robust_multidimarr.py:530), Var($const466.232, final_2D_robust_multidimarr.py:530)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const466.232
        del $const464.231
        del $468build_slice.233
        $470binary_subscr.235 = static_getitem(value=global_arr, index=slice(2800, 2848, None), index_var=$468build_slice.234) :: array(float64, 1d, C)
        del $468build_slice.234
        temp48 = $470binary_subscr.235 :: array(float64, 1d, C)
        del $470binary_subscr.235
531:     temp64 = global_arr[2848:2912]
        $const476.237 = const(int, 2848) :: Literal[int](2848)
        $const478.238 = const(int, 2912) :: Literal[int](2912)
        $480build_slice.239 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $480build_slice.240 = call $480build_slice.239($const476.237, $const478.238, func=$480build_slice.239, args=(Var($const476.237, final_2D_robust_multidimarr.py:531), Var($const478.238, final_2D_robust_multidimarr.py:531)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const478.238
        del $const476.237
        del $480build_slice.239
        $482binary_subscr.241 = static_getitem(value=global_arr, index=slice(2848, 2912, None), index_var=$480build_slice.240) :: array(float64, 1d, C)
        del $480build_slice.240
        temp64 = $482binary_subscr.241 :: array(float64, 1d, C)
        del $482binary_subscr.241
532:     axtbb = global_arr[2912:2920]
        $const488.243 = const(int, 2912) :: Literal[int](2912)
        $const490.244 = const(int, 2920) :: Literal[int](2920)
        $492build_slice.245 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $492build_slice.246 = call $492build_slice.245($const488.243, $const490.244, func=$492build_slice.245, args=(Var($const488.243, final_2D_robust_multidimarr.py:532), Var($const490.244, final_2D_robust_multidimarr.py:532)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const490.244
        del $const488.243
        del $492build_slice.245
        $494binary_subscr.247 = static_getitem(value=global_arr, index=slice(2912, 2920, None), index_var=$492build_slice.246) :: array(float64, 1d, C)
        del $492build_slice.246
        axtbb = $494binary_subscr.247 :: array(float64, 1d, C)
        del $494binary_subscr.247
533:     axtcc = global_arr[2920:2928]
        $const500.249 = const(int, 2920) :: Literal[int](2920)
        $const502.250 = const(int, 2928) :: Literal[int](2928)
        $504build_slice.251 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $504build_slice.252 = call $504build_slice.251($const500.249, $const502.250, func=$504build_slice.251, args=(Var($const500.249, final_2D_robust_multidimarr.py:533), Var($const502.250, final_2D_robust_multidimarr.py:533)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const502.250
        del $const500.249
        del $504build_slice.251
        $506binary_subscr.253 = static_getitem(value=global_arr, index=slice(2920, 2928, None), index_var=$504build_slice.252) :: array(float64, 1d, C)
        del $504build_slice.252
        axtcc = $506binary_subscr.253 :: array(float64, 1d, C)
        del $506binary_subscr.253
534:     aytbb = global_arr[2928:2936]
        $const512.255 = const(int, 2928) :: Literal[int](2928)
        $const514.256 = const(int, 2936) :: Literal[int](2936)
        $516build_slice.257 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $516build_slice.258 = call $516build_slice.257($const512.255, $const514.256, func=$516build_slice.257, args=(Var($const512.255, final_2D_robust_multidimarr.py:534), Var($const514.256, final_2D_robust_multidimarr.py:534)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const514.256
        del $const512.255
        del $516build_slice.257
        $518binary_subscr.259 = static_getitem(value=global_arr, index=slice(2928, 2936, None), index_var=$516build_slice.258) :: array(float64, 1d, C)
        del $516build_slice.258
        aytbb = $518binary_subscr.259 :: array(float64, 1d, C)
        del $518binary_subscr.259
535:     aytcc = global_arr[2936:2944]
        $const524.261 = const(int, 2936) :: Literal[int](2936)
        $const526.262 = const(int, 2944) :: Literal[int](2944)
        $528build_slice.263 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $528build_slice.264 = call $528build_slice.263($const524.261, $const526.262, func=$528build_slice.263, args=(Var($const524.261, final_2D_robust_multidimarr.py:535), Var($const526.262, final_2D_robust_multidimarr.py:535)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const526.262
        del $const524.261
        del $528build_slice.263
        $530binary_subscr.265 = static_getitem(value=global_arr, index=slice(2936, 2944, None), index_var=$528build_slice.264) :: array(float64, 1d, C)
        del $528build_slice.264
        aytcc = $530binary_subscr.265 :: array(float64, 1d, C)
        del $530binary_subscr.265
536:     bxtaa = global_arr[2944:2952]
        $const536.267 = const(int, 2944) :: Literal[int](2944)
        $const538.268 = const(int, 2952) :: Literal[int](2952)
        $540build_slice.269 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $540build_slice.270 = call $540build_slice.269($const536.267, $const538.268, func=$540build_slice.269, args=(Var($const536.267, final_2D_robust_multidimarr.py:536), Var($const538.268, final_2D_robust_multidimarr.py:536)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const538.268
        del $const536.267
        del $540build_slice.269
        $542binary_subscr.271 = static_getitem(value=global_arr, index=slice(2944, 2952, None), index_var=$540build_slice.270) :: array(float64, 1d, C)
        del $540build_slice.270
        bxtaa = $542binary_subscr.271 :: array(float64, 1d, C)
        del $542binary_subscr.271
537:     bxtcc = global_arr[2952:2960]
        $const548.273 = const(int, 2952) :: Literal[int](2952)
        $const550.274 = const(int, 2960) :: Literal[int](2960)
        $552build_slice.275 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $552build_slice.276 = call $552build_slice.275($const548.273, $const550.274, func=$552build_slice.275, args=(Var($const548.273, final_2D_robust_multidimarr.py:537), Var($const550.274, final_2D_robust_multidimarr.py:537)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const550.274
        del $const548.273
        del $552build_slice.275
        $554binary_subscr.277 = static_getitem(value=global_arr, index=slice(2952, 2960, None), index_var=$552build_slice.276) :: array(float64, 1d, C)
        del $552build_slice.276
        bxtcc = $554binary_subscr.277 :: array(float64, 1d, C)
        del $554binary_subscr.277
538:     bytaa = global_arr[2960:2968]
        $const560.279 = const(int, 2960) :: Literal[int](2960)
        $const562.280 = const(int, 2968) :: Literal[int](2968)
        $564build_slice.281 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $564build_slice.282 = call $564build_slice.281($const560.279, $const562.280, func=$564build_slice.281, args=(Var($const560.279, final_2D_robust_multidimarr.py:538), Var($const562.280, final_2D_robust_multidimarr.py:538)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const562.280
        del $const560.279
        del $564build_slice.281
        $566binary_subscr.283 = static_getitem(value=global_arr, index=slice(2960, 2968, None), index_var=$564build_slice.282) :: array(float64, 1d, C)
        del $564build_slice.282
        bytaa = $566binary_subscr.283 :: array(float64, 1d, C)
        del $566binary_subscr.283
539:     bytcc = global_arr[2968:2976]
        $const572.285 = const(int, 2968) :: Literal[int](2968)
        $const574.286 = const(int, 2976) :: Literal[int](2976)
        $576build_slice.287 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $576build_slice.288 = call $576build_slice.287($const572.285, $const574.286, func=$576build_slice.287, args=(Var($const572.285, final_2D_robust_multidimarr.py:539), Var($const574.286, final_2D_robust_multidimarr.py:539)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const574.286
        del $const572.285
        del $576build_slice.287
        $578binary_subscr.289 = static_getitem(value=global_arr, index=slice(2968, 2976, None), index_var=$576build_slice.288) :: array(float64, 1d, C)
        del $576build_slice.288
        bytcc = $578binary_subscr.289 :: array(float64, 1d, C)
        del $578binary_subscr.289
540:     cxtaa = global_arr[2976:2984]
        $const584.291 = const(int, 2976) :: Literal[int](2976)
        $const586.292 = const(int, 2984) :: Literal[int](2984)
        $588build_slice.293 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $588build_slice.294 = call $588build_slice.293($const584.291, $const586.292, func=$588build_slice.293, args=(Var($const584.291, final_2D_robust_multidimarr.py:540), Var($const586.292, final_2D_robust_multidimarr.py:540)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const586.292
        del $const584.291
        del $588build_slice.293
        $590binary_subscr.295 = static_getitem(value=global_arr, index=slice(2976, 2984, None), index_var=$588build_slice.294) :: array(float64, 1d, C)
        del $588build_slice.294
        cxtaa = $590binary_subscr.295 :: array(float64, 1d, C)
        del $590binary_subscr.295
541:     cxtbb = global_arr[2984:2992]
        $const596.297 = const(int, 2984) :: Literal[int](2984)
        $const598.298 = const(int, 2992) :: Literal[int](2992)
        $600build_slice.299 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $600build_slice.300 = call $600build_slice.299($const596.297, $const598.298, func=$600build_slice.299, args=(Var($const596.297, final_2D_robust_multidimarr.py:541), Var($const598.298, final_2D_robust_multidimarr.py:541)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const598.298
        del $const596.297
        del $600build_slice.299
        $602binary_subscr.301 = static_getitem(value=global_arr, index=slice(2984, 2992, None), index_var=$600build_slice.300) :: array(float64, 1d, C)
        del $600build_slice.300
        cxtbb = $602binary_subscr.301 :: array(float64, 1d, C)
        del $602binary_subscr.301
542:     cytaa = global_arr[2992:3000]
        $const608.303 = const(int, 2992) :: Literal[int](2992)
        $const610.304 = const(int, 3000) :: Literal[int](3000)
        $612build_slice.305 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $612build_slice.306 = call $612build_slice.305($const608.303, $const610.304, func=$612build_slice.305, args=(Var($const608.303, final_2D_robust_multidimarr.py:542), Var($const610.304, final_2D_robust_multidimarr.py:542)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const610.304
        del $const608.303
        del $612build_slice.305
        $614binary_subscr.307 = static_getitem(value=global_arr, index=slice(2992, 3000, None), index_var=$612build_slice.306) :: array(float64, 1d, C)
        del $612build_slice.306
        cytaa = $614binary_subscr.307 :: array(float64, 1d, C)
        del $614binary_subscr.307
543:     cytbb = global_arr[3000:3008]
        $const620.309 = const(int, 3000) :: Literal[int](3000)
        $const622.310 = const(int, 3008) :: Literal[int](3008)
        $624build_slice.311 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $624build_slice.312 = call $624build_slice.311($const620.309, $const622.310, func=$624build_slice.311, args=(Var($const620.309, final_2D_robust_multidimarr.py:543), Var($const622.310, final_2D_robust_multidimarr.py:543)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const622.310
        del $const620.309
        del $624build_slice.311
        $626binary_subscr.313 = static_getitem(value=global_arr, index=slice(3000, 3008, None), index_var=$624build_slice.312) :: array(float64, 1d, C)
        del $624build_slice.312
        cytbb = $626binary_subscr.313 :: array(float64, 1d, C)
        del $626binary_subscr.313
544:     axtbc = global_arr[3008:3016]
        $const632.315 = const(int, 3008) :: Literal[int](3008)
        $const634.316 = const(int, 3016) :: Literal[int](3016)
        $636build_slice.317 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $636build_slice.318 = call $636build_slice.317($const632.315, $const634.316, func=$636build_slice.317, args=(Var($const632.315, final_2D_robust_multidimarr.py:544), Var($const634.316, final_2D_robust_multidimarr.py:544)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const634.316
        del $const632.315
        del $636build_slice.317
        $638binary_subscr.319 = static_getitem(value=global_arr, index=slice(3008, 3016, None), index_var=$636build_slice.318) :: array(float64, 1d, C)
        del $636build_slice.318
        axtbc = $638binary_subscr.319 :: array(float64, 1d, C)
        del $638binary_subscr.319
545:     aytbc = global_arr[3016:3024]
        $const644.321 = const(int, 3016) :: Literal[int](3016)
        $const646.322 = const(int, 3024) :: Literal[int](3024)
        $648build_slice.323 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $648build_slice.324 = call $648build_slice.323($const644.321, $const646.322, func=$648build_slice.323, args=(Var($const644.321, final_2D_robust_multidimarr.py:545), Var($const646.322, final_2D_robust_multidimarr.py:545)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const646.322
        del $const644.321
        del $648build_slice.323
        $650binary_subscr.325 = static_getitem(value=global_arr, index=slice(3016, 3024, None), index_var=$648build_slice.324) :: array(float64, 1d, C)
        del $648build_slice.324
        aytbc = $650binary_subscr.325 :: array(float64, 1d, C)
        del $650binary_subscr.325
546:     bxtca = global_arr[3024:3032]
        $const656.327 = const(int, 3024) :: Literal[int](3024)
        $const658.328 = const(int, 3032) :: Literal[int](3032)
        $660build_slice.329 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $660build_slice.330 = call $660build_slice.329($const656.327, $const658.328, func=$660build_slice.329, args=(Var($const656.327, final_2D_robust_multidimarr.py:546), Var($const658.328, final_2D_robust_multidimarr.py:546)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const658.328
        del $const656.327
        del $660build_slice.329
        $662binary_subscr.331 = static_getitem(value=global_arr, index=slice(3024, 3032, None), index_var=$660build_slice.330) :: array(float64, 1d, C)
        del $660build_slice.330
        bxtca = $662binary_subscr.331 :: array(float64, 1d, C)
        del $662binary_subscr.331
547:     bytca = global_arr[3032:3040]
        $const668.333 = const(int, 3032) :: Literal[int](3032)
        $const670.334 = const(int, 3040) :: Literal[int](3040)
        $672build_slice.335 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $672build_slice.336 = call $672build_slice.335($const668.333, $const670.334, func=$672build_slice.335, args=(Var($const668.333, final_2D_robust_multidimarr.py:547), Var($const670.334, final_2D_robust_multidimarr.py:547)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const670.334
        del $const668.333
        del $672build_slice.335
        $674binary_subscr.337 = static_getitem(value=global_arr, index=slice(3032, 3040, None), index_var=$672build_slice.336) :: array(float64, 1d, C)
        del $672build_slice.336
        bytca = $674binary_subscr.337 :: array(float64, 1d, C)
        del $674binary_subscr.337
548:     cxtab = global_arr[3040:3048]
        $const680.339 = const(int, 3040) :: Literal[int](3040)
        $const682.340 = const(int, 3048) :: Literal[int](3048)
        $684build_slice.341 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $684build_slice.342 = call $684build_slice.341($const680.339, $const682.340, func=$684build_slice.341, args=(Var($const680.339, final_2D_robust_multidimarr.py:548), Var($const682.340, final_2D_robust_multidimarr.py:548)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const682.340
        del $const680.339
        del $684build_slice.341
        $686binary_subscr.343 = static_getitem(value=global_arr, index=slice(3040, 3048, None), index_var=$684build_slice.342) :: array(float64, 1d, C)
        del $684build_slice.342
        cxtab = $686binary_subscr.343 :: array(float64, 1d, C)
        del $686binary_subscr.343
549:     cytab = global_arr[3048:3056]
        $const692.345 = const(int, 3048) :: Literal[int](3048)
        $const694.346 = const(int, 3056) :: Literal[int](3056)
        $696build_slice.347 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $696build_slice.348 = call $696build_slice.347($const692.345, $const694.346, func=$696build_slice.347, args=(Var($const692.345, final_2D_robust_multidimarr.py:549), Var($const694.346, final_2D_robust_multidimarr.py:549)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const694.346
        del $const692.345
        del $696build_slice.347
        $698binary_subscr.349 = static_getitem(value=global_arr, index=slice(3048, 3056, None), index_var=$696build_slice.348) :: array(float64, 1d, C)
        del $696build_slice.348
        cytab = $698binary_subscr.349 :: array(float64, 1d, C)
        del $698binary_subscr.349
550:     axtbct = global_arr[3056:3072]
        $const704.351 = const(int, 3056) :: Literal[int](3056)
        $const706.352 = const(int, 3072) :: Literal[int](3072)
        $708build_slice.353 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $708build_slice.354 = call $708build_slice.353($const704.351, $const706.352, func=$708build_slice.353, args=(Var($const704.351, final_2D_robust_multidimarr.py:550), Var($const706.352, final_2D_robust_multidimarr.py:550)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const706.352
        del $const704.351
        del $708build_slice.353
        $710binary_subscr.355 = static_getitem(value=global_arr, index=slice(3056, 3072, None), index_var=$708build_slice.354) :: array(float64, 1d, C)
        del $708build_slice.354
        axtbct = $710binary_subscr.355 :: array(float64, 1d, C)
        del $710binary_subscr.355
551:     aytbct = global_arr[3072:3088]
        $const716.357 = const(int, 3072) :: Literal[int](3072)
        $const718.358 = const(int, 3088) :: Literal[int](3088)
        $720build_slice.359 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $720build_slice.360 = call $720build_slice.359($const716.357, $const718.358, func=$720build_slice.359, args=(Var($const716.357, final_2D_robust_multidimarr.py:551), Var($const718.358, final_2D_robust_multidimarr.py:551)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const718.358
        del $const716.357
        del $720build_slice.359
        $722binary_subscr.361 = static_getitem(value=global_arr, index=slice(3072, 3088, None), index_var=$720build_slice.360) :: array(float64, 1d, C)
        del $720build_slice.360
        aytbct = $722binary_subscr.361 :: array(float64, 1d, C)
        del $722binary_subscr.361
552:     bxtcat = global_arr[3088:3104]
        $const728.363 = const(int, 3088) :: Literal[int](3088)
        $const730.364 = const(int, 3104) :: Literal[int](3104)
        $732build_slice.365 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $732build_slice.366 = call $732build_slice.365($const728.363, $const730.364, func=$732build_slice.365, args=(Var($const728.363, final_2D_robust_multidimarr.py:552), Var($const730.364, final_2D_robust_multidimarr.py:552)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const730.364
        del $const728.363
        del $732build_slice.365
        $734binary_subscr.367 = static_getitem(value=global_arr, index=slice(3088, 3104, None), index_var=$732build_slice.366) :: array(float64, 1d, C)
        del $732build_slice.366
        bxtcat = $734binary_subscr.367 :: array(float64, 1d, C)
        del $734binary_subscr.367
553:     bytcat = global_arr[3104:3120]
        $const740.369 = const(int, 3104) :: Literal[int](3104)
        $const742.370 = const(int, 3120) :: Literal[int](3120)
        $744build_slice.371 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $744build_slice.372 = call $744build_slice.371($const740.369, $const742.370, func=$744build_slice.371, args=(Var($const740.369, final_2D_robust_multidimarr.py:553), Var($const742.370, final_2D_robust_multidimarr.py:553)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const742.370
        del $const740.369
        del $744build_slice.371
        $746binary_subscr.373 = static_getitem(value=global_arr, index=slice(3104, 3120, None), index_var=$744build_slice.372) :: array(float64, 1d, C)
        del $744build_slice.372
        bytcat = $746binary_subscr.373 :: array(float64, 1d, C)
        del $746binary_subscr.373
554:     cxtabt = global_arr[3120:3136]
        $const752.375 = const(int, 3120) :: Literal[int](3120)
        $const754.376 = const(int, 3136) :: Literal[int](3136)
        $756build_slice.377 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $756build_slice.378 = call $756build_slice.377($const752.375, $const754.376, func=$756build_slice.377, args=(Var($const752.375, final_2D_robust_multidimarr.py:554), Var($const754.376, final_2D_robust_multidimarr.py:554)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const754.376
        del $const752.375
        del $756build_slice.377
        $758binary_subscr.379 = static_getitem(value=global_arr, index=slice(3120, 3136, None), index_var=$756build_slice.378) :: array(float64, 1d, C)
        del $756build_slice.378
        cxtabt = $758binary_subscr.379 :: array(float64, 1d, C)
        del $758binary_subscr.379
555:     cytabt = global_arr[3136:3152]
        $const764.381 = const(int, 3136) :: Literal[int](3136)
        $const766.382 = const(int, 3152) :: Literal[int](3152)
        $768build_slice.383 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $768build_slice.384 = call $768build_slice.383($const764.381, $const766.382, func=$768build_slice.383, args=(Var($const764.381, final_2D_robust_multidimarr.py:555), Var($const766.382, final_2D_robust_multidimarr.py:555)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const766.382
        del $const764.381
        del $768build_slice.383
        $770binary_subscr.385 = static_getitem(value=global_arr, index=slice(3136, 3152, None), index_var=$768build_slice.384) :: array(float64, 1d, C)
        del $768build_slice.384
        cytabt = $770binary_subscr.385 :: array(float64, 1d, C)
        del $770binary_subscr.385
556:     axtbctt = global_arr[3152:3160]
        $const776.387 = const(int, 3152) :: Literal[int](3152)
        $const778.388 = const(int, 3160) :: Literal[int](3160)
        $780build_slice.389 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $780build_slice.390 = call $780build_slice.389($const776.387, $const778.388, func=$780build_slice.389, args=(Var($const776.387, final_2D_robust_multidimarr.py:556), Var($const778.388, final_2D_robust_multidimarr.py:556)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const778.388
        del $const776.387
        del $780build_slice.389
        $782binary_subscr.391 = static_getitem(value=global_arr, index=slice(3152, 3160, None), index_var=$780build_slice.390) :: array(float64, 1d, C)
        del $780build_slice.390
        axtbctt = $782binary_subscr.391 :: array(float64, 1d, C)
        del $782binary_subscr.391
557:     aytbctt = global_arr[3160:3168]
        $const788.393 = const(int, 3160) :: Literal[int](3160)
        $const790.394 = const(int, 3168) :: Literal[int](3168)
        $792build_slice.395 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $792build_slice.396 = call $792build_slice.395($const788.393, $const790.394, func=$792build_slice.395, args=(Var($const788.393, final_2D_robust_multidimarr.py:557), Var($const790.394, final_2D_robust_multidimarr.py:557)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const790.394
        del $const788.393
        del $792build_slice.395
        $794binary_subscr.397 = static_getitem(value=global_arr, index=slice(3160, 3168, None), index_var=$792build_slice.396) :: array(float64, 1d, C)
        del $792build_slice.396
        aytbctt = $794binary_subscr.397 :: array(float64, 1d, C)
        del $794binary_subscr.397
558:     bxtcatt = global_arr[3168:3176]
        $const800.399 = const(int, 3168) :: Literal[int](3168)
        $const802.400 = const(int, 3176) :: Literal[int](3176)
        $804build_slice.401 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $804build_slice.402 = call $804build_slice.401($const800.399, $const802.400, func=$804build_slice.401, args=(Var($const800.399, final_2D_robust_multidimarr.py:558), Var($const802.400, final_2D_robust_multidimarr.py:558)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const802.400
        del $const800.399
        del $804build_slice.401
        $806binary_subscr.403 = static_getitem(value=global_arr, index=slice(3168, 3176, None), index_var=$804build_slice.402) :: array(float64, 1d, C)
        del $804build_slice.402
        bxtcatt = $806binary_subscr.403 :: array(float64, 1d, C)
        del $806binary_subscr.403
559:     bytcatt = global_arr[3176:3184]
        $const812.405 = const(int, 3176) :: Literal[int](3176)
        $const814.406 = const(int, 3184) :: Literal[int](3184)
        $816build_slice.407 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $816build_slice.408 = call $816build_slice.407($const812.405, $const814.406, func=$816build_slice.407, args=(Var($const812.405, final_2D_robust_multidimarr.py:559), Var($const814.406, final_2D_robust_multidimarr.py:559)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const814.406
        del $const812.405
        del $816build_slice.407
        $818binary_subscr.409 = static_getitem(value=global_arr, index=slice(3176, 3184, None), index_var=$816build_slice.408) :: array(float64, 1d, C)
        del $816build_slice.408
        bytcatt = $818binary_subscr.409 :: array(float64, 1d, C)
        del $818binary_subscr.409
560:     cxtabtt = global_arr[3184:3192]
        $const824.411 = const(int, 3184) :: Literal[int](3184)
        $const826.412 = const(int, 3192) :: Literal[int](3192)
        $828build_slice.413 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $828build_slice.414 = call $828build_slice.413($const824.411, $const826.412, func=$828build_slice.413, args=(Var($const824.411, final_2D_robust_multidimarr.py:560), Var($const826.412, final_2D_robust_multidimarr.py:560)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const826.412
        del $const824.411
        del $828build_slice.413
        $830binary_subscr.415 = static_getitem(value=global_arr, index=slice(3184, 3192, None), index_var=$828build_slice.414) :: array(float64, 1d, C)
        del $828build_slice.414
        cxtabtt = $830binary_subscr.415 :: array(float64, 1d, C)
        del $830binary_subscr.415
561:     cytabtt = global_arr[3192:3200]
        $const836.417 = const(int, 3192) :: Literal[int](3192)
        $const838.418 = const(int, 3200) :: Literal[int](3200)
        $840build_slice.419 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $840build_slice.420 = call $840build_slice.419($const836.417, $const838.418, func=$840build_slice.419, args=(Var($const836.417, final_2D_robust_multidimarr.py:561), Var($const838.418, final_2D_robust_multidimarr.py:561)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const838.418
        del $const836.417
        del $840build_slice.419
        $842binary_subscr.421 = static_getitem(value=global_arr, index=slice(3192, 3200, None), index_var=$840build_slice.420) :: array(float64, 1d, C)
        del $840build_slice.420
        cytabtt = $842binary_subscr.421 :: array(float64, 1d, C)
        del $842binary_subscr.421
562:     abt = global_arr[3200:3208]
        $const848.423 = const(int, 3200) :: Literal[int](3200)
        $const850.424 = const(int, 3208) :: Literal[int](3208)
        $852build_slice.425 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $852build_slice.426 = call $852build_slice.425($const848.423, $const850.424, func=$852build_slice.425, args=(Var($const848.423, final_2D_robust_multidimarr.py:562), Var($const850.424, final_2D_robust_multidimarr.py:562)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const850.424
        del $const848.423
        del $852build_slice.425
        $854binary_subscr.427 = static_getitem(value=global_arr, index=slice(3200, 3208, None), index_var=$852build_slice.426) :: array(float64, 1d, C)
        del $852build_slice.426
        abt = $854binary_subscr.427 :: array(float64, 1d, C)
        del $854binary_subscr.427
563:     bct = global_arr[3208:3216]
        $const860.429 = const(int, 3208) :: Literal[int](3208)
        $const862.430 = const(int, 3216) :: Literal[int](3216)
        $864build_slice.431 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $864build_slice.432 = call $864build_slice.431($const860.429, $const862.430, func=$864build_slice.431, args=(Var($const860.429, final_2D_robust_multidimarr.py:563), Var($const862.430, final_2D_robust_multidimarr.py:563)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const862.430
        del $const860.429
        del $864build_slice.431
        $866binary_subscr.433 = static_getitem(value=global_arr, index=slice(3208, 3216, None), index_var=$864build_slice.432) :: array(float64, 1d, C)
        del $864build_slice.432
        bct = $866binary_subscr.433 :: array(float64, 1d, C)
        del $866binary_subscr.433
564:     cat = global_arr[3216:3224]
        $const872.435 = const(int, 3216) :: Literal[int](3216)
        $const874.436 = const(int, 3224) :: Literal[int](3224)
        $876build_slice.437 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $876build_slice.438 = call $876build_slice.437($const872.435, $const874.436, func=$876build_slice.437, args=(Var($const872.435, final_2D_robust_multidimarr.py:564), Var($const874.436, final_2D_robust_multidimarr.py:564)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const874.436
        del $const872.435
        del $876build_slice.437
        $878binary_subscr.439 = static_getitem(value=global_arr, index=slice(3216, 3224, None), index_var=$876build_slice.438) :: array(float64, 1d, C)
        del $876build_slice.438
        cat = $878binary_subscr.439 :: array(float64, 1d, C)
        del $878binary_subscr.439
565:     abtt = global_arr[3224:3228]
        $const884.441 = const(int, 3224) :: Literal[int](3224)
        $const886.442 = const(int, 3228) :: Literal[int](3228)
        $888build_slice.443 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $888build_slice.444 = call $888build_slice.443($const884.441, $const886.442, func=$888build_slice.443, args=(Var($const884.441, final_2D_robust_multidimarr.py:565), Var($const886.442, final_2D_robust_multidimarr.py:565)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const886.442
        del $const884.441
        del $888build_slice.443
        $890binary_subscr.445 = static_getitem(value=global_arr, index=slice(3224, 3228, None), index_var=$888build_slice.444) :: array(float64, 1d, C)
        del $888build_slice.444
        abtt = $890binary_subscr.445 :: array(float64, 1d, C)
        del $890binary_subscr.445
566:     bctt = global_arr[3228:3232]
        $const896.447 = const(int, 3228) :: Literal[int](3228)
        $const898.448 = const(int, 3232) :: Literal[int](3232)
        $900build_slice.449 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $900build_slice.450 = call $900build_slice.449($const896.447, $const898.448, func=$900build_slice.449, args=(Var($const896.447, final_2D_robust_multidimarr.py:566), Var($const898.448, final_2D_robust_multidimarr.py:566)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const898.448
        del $const896.447
        del $900build_slice.449
        $902binary_subscr.451 = static_getitem(value=global_arr, index=slice(3228, 3232, None), index_var=$900build_slice.450) :: array(float64, 1d, C)
        del $900build_slice.450
        bctt = $902binary_subscr.451 :: array(float64, 1d, C)
        del $902binary_subscr.451
567:     catt = global_arr[3232:3236]
        $const908.453 = const(int, 3232) :: Literal[int](3232)
        $const910.454 = const(int, 3236) :: Literal[int](3236)
        $912build_slice.455 = global(slice: <class 'slice'>) :: Function(<class 'slice'>)
        $912build_slice.456 = call $912build_slice.455($const908.453, $const910.454, func=$912build_slice.455, args=(Var($const908.453, final_2D_robust_multidimarr.py:567), Var($const910.454, final_2D_robust_multidimarr.py:567)), kws=(), vararg=None) :: (int64, int64) -> slice<a:b>
        del $const910.454
        del $const908.453
        del $912build_slice.455
        $914binary_subscr.457 = static_getitem(value=global_arr, index=slice(3232, 3236, None), index_var=$912build_slice.456) :: array(float64, 1d, C)
        del global_arr
        del $912build_slice.456
        catt = $914binary_subscr.457 :: array(float64, 1d, C)
        del $914binary_subscr.457
568:
569:     for point_id in range(3, gv):
        jump 918
      label 918
        $922load_global.0 = global(range: <class 'range'>) :: Function(<class 'range'>)
        $const924.1 = const(int, 3) :: Literal[int](3)
        $928call_function.3 = call $922load_global.0($const924.1, gv, func=$922load_global.0, args=[Var($const924.1, final_2D_robust_multidimarr.py:569), Var(gv, final_2D_robust_multidimarr.py:493)], kws=(), vararg=None) :: (int64, int64) -> range_state_int64
        del $const924.1
        del $922load_global.0
        $930get_iter.4 = getiter(value=$928call_function.3) :: range_iter_int64
        del $928call_function.3
        $phi932.0 = $930get_iter.4 :: range_iter_int64
        del $930get_iter.4
        jump 932
      label 932
        $932for_iter.1 = iternext(value=$phi932.0) :: pair<int64, bool>
        $932for_iter.2 = pair_first(value=$932for_iter.1) :: int64
        $932for_iter.3 = pair_second(value=$932for_iter.1) :: bool
        del $932for_iter.1
        $phi936.1 = $932for_iter.2 :: int64
        del $932for_iter.2
        branch $932for_iter.3, 936, 1260
      label 936
        del $932for_iter.3
        point_id = $phi936.1 :: int64
        del $phi936.1
570:
571:         enclosing_tri = _walk(
            $938load_global.2 = global(_walk: CPUDispatcher(<function _walk at 0x7f51e5ef3830>)) :: type(CPUDispatcher(<function _walk at 0x7f51e5ef3830>))
572:             point_id, old_tri, vertices_ID, neighbour_ID, points, gv, splitter,
573:             B, C1, C2, D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC,
574:             resulterrbound, static_filter_o2d, orient2d_count)
                $976call_function.21 = call $938load_global.2(point_id, old_tri, vertices_ID, neighbour_ID, points, gv, splitter, B, C1, C2, D, u, ccwerrboundA, ccwerrboundB, ccwerrboundC, resulterrbound, static_filter_o2d, orient2d_count, func=$938load_global.2, args=[Var(point_id, final_2D_robust_multidimarr.py:569), Var(old_tri, final_2D_robust_multidimarr.py:493), Var(vertices_ID, final_2D_robust_multidimarr.py:493), Var(neighbour_ID, final_2D_robust_multidimarr.py:493), Var(points, final_2D_robust_multidimarr.py:493), Var(gv, final_2D_robust_multidimarr.py:493), Var(splitter, final_2D_robust_multidimarr.py:493), Var(B, final_2D_robust_multidimarr.py:494), Var(C1, final_2D_robust_multidimarr.py:495), Var(C2, final_2D_robust_multidimarr.py:496), Var(D, final_2D_robust_multidimarr.py:497), Var(u, final_2D_robust_multidimarr.py:498), Var(ccwerrboundA, final_2D_robust_multidimarr.py:493), Var(ccwerrboundB, final_2D_robust_multidimarr.py:493), Var(ccwerrboundC, final_2D_robust_multidimarr.py:493), Var(resulterrbound, final_2D_robust_multidimarr.py:493), Var(static_filter_o2d, final_2D_robust_multidimarr.py:493), Var(orient2d_count, final_2D_robust_multidimarr.py:493)], kws=(), vararg=None) :: (int64, int64, array(int64, 2d, C), array(int64, 2d, C), array(float64, 2d, C), int64, float64, array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, array(int64, 1d, C)) -> int64
                del $938load_global.2
                enclosing_tri = $976call_function.21 :: int64
                del $976call_function.21
575:
576:         ic_bad_tri, ic_bad_tri_end, ic_boundary_tri, ic_boundary_tri_end, \
577:         ic_boundary_vtx = _identify_cavity(
            $980load_global.22 = global(_identify_cavity: CPUDispatcher(<function _identify_cavity at 0x7f51d4c98dd0>)) :: type(CPUDispatcher(<function _identify_cavity at 0x7f51d4c98dd0>))
578:             points, point_id, enclosing_tri, neighbour_ID, vertices_ID,
579:             ic_bad_tri, ic_boundary_tri, ic_boundary_vtx, gv,
580:             bad_tri_indicator_arr, B, C1, C2, D, u, v, bc, ca, ab, axbc, axxbc,
581:             aybc, ayybc, adet, bxca, bxxca, byca, byyca, bdet, cxab, cxxab,
582:             cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb, cc, temp8, temp16a,
583:             temp16b, temp16c, temp32a, temp32b, temp48, temp64, axtbb, axtcc,
584:             aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb, cytaa,
585:             cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab, axtbct, aytbct,
586:             bxtcat, bytcat, cxtabt, cytabt, axtbctt, aytbctt, bxtcatt, bytcatt,
587:             cxtabtt, cytabtt, abt, bct, cat, abtt, bctt, catt, splitter,
588:             iccerrboundA, iccerrboundB, iccerrboundC, resulterrbound,
589:             ccwerrboundA, ccwerrboundB, ccwerrboundC, static_filter_o2d,
590:             static_filter_i2d, orient2d_count, incircle_count)
                $1174call_function.119 = call $980load_global.22(points, point_id, enclosing_tri, neighbour_ID, vertices_ID, ic_bad_tri, ic_boundary_tri, ic_boundary_vtx, gv, bad_tri_indicator_arr, B, C1, C2, D, u, v, bc, ca, ab, axbc, axxbc, aybc, ayybc, adet, bxca, bxxca, byca, byyca, bdet, cxab, cxxab, cyab, cyyab, cdet, abdet, fin1, fin2, aa, bb, cc, temp8, temp16a, temp16b, temp16c, temp32a, temp32b, temp48, temp64, axtbb, axtcc, aytbb, aytcc, bxtaa, bxtcc, bytaa, bytcc, cxtaa, cxtbb, cytaa, cytbb, axtbc, aytbc, bxtca, bytca, cxtab, cytab, axtbct, aytbct, bxtcat, bytcat, cxtabt, cytabt, axtbctt, aytbctt, bxtcatt, bytcatt, cxtabtt, cytabtt, abt, bct, cat, abtt, bctt, catt, splitter, iccerrboundA, iccerrboundB, iccerrboundC, resulterrbound, ccwerrboundA, ccwerrboundB, ccwerrboundC, static_filter_o2d, static_filter_i2d, orient2d_count, incircle_count, func=$980load_global.22, args=[Var(points, final_2D_robust_multidimarr.py:493), Var(point_id, final_2D_robust_multidimarr.py:569), Var(enclosing_tri, final_2D_robust_multidimarr.py:574), Var(neighbour_ID, final_2D_robust_multidimarr.py:493), Var(vertices_ID, final_2D_robust_multidimarr.py:493), Var(ic_bad_tri, final_2D_robust_multidimarr.py:493), Var(ic_boundary_tri, final_2D_robust_multidimarr.py:493), Var(ic_boundary_vtx, final_2D_robust_multidimarr.py:493), Var(gv, final_2D_robust_multidimarr.py:493), Var(bad_tri_indicator_arr, final_2D_robust_multidimarr.py:493), Var(B, final_2D_robust_multidimarr.py:494), Var(C1, final_2D_robust_multidimarr.py:495), Var(C2, final_2D_robust_multidimarr.py:496), Var(D, final_2D_robust_multidimarr.py:497), Var(u, final_2D_robust_multidimarr.py:498), Var(v, final_2D_robust_multidimarr.py:499), Var(bc, final_2D_robust_multidimarr.py:500), Var(ca, final_2D_robust_multidimarr.py:501), Var(ab, final_2D_robust_multidimarr.py:502), Var(axbc, final_2D_robust_multidimarr.py:503), Var(axxbc, final_2D_robust_multidimarr.py:504), Var(aybc, final_2D_robust_multidimarr.py:505), Var(ayybc, final_2D_robust_multidimarr.py:506), Var(adet, final_2D_robust_multidimarr.py:507), Var(bxca, final_2D_robust_multidimarr.py:508), Var(bxxca, final_2D_robust_multidimarr.py:509), Var(byca, final_2D_robust_multidimarr.py:510), Var(byyca, final_2D_robust_multidimarr.py:511), Var(bdet, final_2D_robust_multidimarr.py:512), Var(cxab, final_2D_robust_multidimarr.py:513), Var(cxxab, final_2D_robust_multidimarr.py:514), Var(cyab, final_2D_robust_multidimarr.py:515), Var(cyyab, final_2D_robust_multidimarr.py:516), Var(cdet, final_2D_robust_multidimarr.py:517), Var(abdet, final_2D_robust_multidimarr.py:518), Var(fin1, final_2D_robust_multidimarr.py:519), Var(fin2, final_2D_robust_multidimarr.py:520), Var(aa, final_2D_robust_multidimarr.py:521), Var(bb, final_2D_robust_multidimarr.py:522), Var(cc, final_2D_robust_multidimarr.py:523), Var(temp8, final_2D_robust_multidimarr.py:524), Var(temp16a, final_2D_robust_multidimarr.py:525), Var(temp16b, final_2D_robust_multidimarr.py:526), Var(temp16c, final_2D_robust_multidimarr.py:527), Var(temp32a, final_2D_robust_multidimarr.py:528), Var(temp32b, final_2D_robust_multidimarr.py:529), Var(temp48, final_2D_robust_multidimarr.py:530), Var(temp64, final_2D_robust_multidimarr.py:531), Var(axtbb, final_2D_robust_multidimarr.py:532), Var(axtcc, final_2D_robust_multidimarr.py:533), Var(aytbb, final_2D_robust_multidimarr.py:534), Var(aytcc, final_2D_robust_multidimarr.py:535), Var(bxtaa, final_2D_robust_multidimarr.py:536), Var(bxtcc, final_2D_robust_multidimarr.py:537), Var(bytaa, final_2D_robust_multidimarr.py:538), Var(bytcc, final_2D_robust_multidimarr.py:539), Var(cxtaa, final_2D_robust_multidimarr.py:540), Var(cxtbb, final_2D_robust_multidimarr.py:541), Var(cytaa, final_2D_robust_multidimarr.py:542), Var(cytbb, final_2D_robust_multidimarr.py:543), Var(axtbc, final_2D_robust_multidimarr.py:544), Var(aytbc, final_2D_robust_multidimarr.py:545), Var(bxtca, final_2D_robust_multidimarr.py:546), Var(bytca, final_2D_robust_multidimarr.py:547), Var(cxtab, final_2D_robust_multidimarr.py:548), Var(cytab, final_2D_robust_multidimarr.py:549), Var(axtbct, final_2D_robust_multidimarr.py:550), Var(aytbct, final_2D_robust_multidimarr.py:551), Var(bxtcat, final_2D_robust_multidimarr.py:552), Var(bytcat, final_2D_robust_multidimarr.py:553), Var(cxtabt, final_2D_robust_multidimarr.py:554), Var(cytabt, final_2D_robust_multidimarr.py:555), Var(axtbctt, final_2D_robust_multidimarr.py:556), Var(aytbctt, final_2D_robust_multidimarr.py:557), Var(bxtcatt, final_2D_robust_multidimarr.py:558), Var(bytcatt, final_2D_robust_multidimarr.py:559), Var(cxtabtt, final_2D_robust_multidimarr.py:560), Var(cytabtt, final_2D_robust_multidimarr.py:561), Var(abt, final_2D_robust_multidimarr.py:562), Var(bct, final_2D_robust_multidimarr.py:563), Var(cat, final_2D_robust_multidimarr.py:564), Var(abtt, final_2D_robust_multidimarr.py:565), Var(bctt, final_2D_robust_multidimarr.py:566), Var(catt, final_2D_robust_multidimarr.py:567), Var(splitter, final_2D_robust_multidimarr.py:493), Var(iccerrboundA, final_2D_robust_multidimarr.py:493), Var(iccerrboundB, final_2D_robust_multidimarr.py:493), Var(iccerrboundC, final_2D_robust_multidimarr.py:493), Var(resulterrbound, final_2D_robust_multidimarr.py:493), Var(ccwerrboundA, final_2D_robust_multidimarr.py:493), Var(ccwerrboundB, final_2D_robust_multidimarr.py:493), Var(ccwerrboundC, final_2D_robust_multidimarr.py:493), Var(static_filter_o2d, final_2D_robust_multidimarr.py:493), Var(static_filter_i2d, final_2D_robust_multidimarr.py:493), Var(orient2d_count, final_2D_robust_multidimarr.py:493), Var(incircle_count, final_2D_robust_multidimarr.py:493)], kws=(), vararg=None) :: (array(float64, 2d, C), int64, int64, array(int64, 2d, C), array(int64, 2d, C), array(int64, 1d, C), array(int64, 1d, C), array(int64, 2d, C), int64, array(bool, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), array(float64, 1d, C), float64, float64, float64, float64, float64, float64, float64, float64, float64, float64, array(int64, 1d, C), array(int64, 1d, C)) -> Tuple(array(int64, 1d, C), int64, array(int64, 1d, C), int64, array(int64, 2d, C))
                del enclosing_tri
                del $980load_global.22
                $1176unpack_sequence.125 = exhaust_iter(value=$1174call_function.119, count=5) :: Tuple(array(int64, 1d, C), int64, array(int64, 1d, C), int64, array(int64, 2d, C))
                del $1174call_function.119
                $1176unpack_sequence.120 = static_getitem(value=$1176unpack_sequence.125, index=0, index_var=None) :: array(int64, 1d, C)
                $1176unpack_sequence.121 = static_getitem(value=$1176unpack_sequence.125, index=1, index_var=None) :: int64
                $1176unpack_sequence.122 = static_getitem(value=$1176unpack_sequence.125, index=2, index_var=None) :: array(int64, 1d, C)
                $1176unpack_sequence.123 = static_getitem(value=$1176unpack_sequence.125, index=3, index_var=None) :: int64
                $1176unpack_sequence.124 = static_getitem(value=$1176unpack_sequence.125, index=4, index_var=None) :: array(int64, 2d, C)
                del $1176unpack_sequence.125
                ic_bad_tri = $1176unpack_sequence.120 :: array(int64, 1d, C)
                del $1176unpack_sequence.120
                ic_bad_tri_end = $1176unpack_sequence.121 :: int64
                del $1176unpack_sequence.121
                ic_boundary_tri = $1176unpack_sequence.122 :: array(int64, 1d, C)
                del $1176unpack_sequence.122
                ic_boundary_tri_end = $1176unpack_sequence.123 :: int64
                del $1176unpack_sequence.123
                ic_boundary_vtx = $1176unpack_sequence.124 :: array(int64, 2d, C)
                del $1176unpack_sequence.124
591:
592:         num_tri, old_tri = _make_Delaunay_ball(
            $1188load_global.126 = global(_make_Delaunay_ball: CPUDispatcher(<function _make_Delaunay_ball at 0x7f51d4483f80>)) :: type(CPUDispatcher(<function _make_Delaunay_ball at 0x7f51d4483f80>))
593:             point_id, ic_bad_tri, ic_bad_tri_end, ic_boundary_tri,
594:             ic_boundary_tri_end, ic_boundary_vtx, points, neighbour_ID,
595:             vertices_ID, num_tri, gv)
                $1212call_function.138 = call $1188load_global.126(point_id, ic_bad_tri, ic_bad_tri_end, ic_boundary_tri, ic_boundary_tri_end, ic_boundary_vtx, points, neighbour_ID, vertices_ID, num_tri, gv, func=$1188load_global.126, args=[Var(point_id, final_2D_robust_multidimarr.py:569), Var(ic_bad_tri, final_2D_robust_multidimarr.py:493), Var(ic_bad_tri_end, final_2D_robust_multidimarr.py:590), Var(ic_boundary_tri, final_2D_robust_multidimarr.py:493), Var(ic_boundary_tri_end, final_2D_robust_multidimarr.py:590), Var(ic_boundary_vtx, final_2D_robust_multidimarr.py:493), Var(points, final_2D_robust_multidimarr.py:493), Var(neighbour_ID, final_2D_robust_multidimarr.py:493), Var(vertices_ID, final_2D_robust_multidimarr.py:493), Var(num_tri, final_2D_robust_multidimarr.py:493), Var(gv, final_2D_robust_multidimarr.py:493)], kws=(), vararg=None) :: (int64, array(int64, 1d, C), int64, array(int64, 1d, C), int64, array(int64, 2d, C), array(float64, 2d, C), array(int64, 2d, C), array(int64, 2d, C), int64, int64) -> UniTuple(int64 x 2)
                del point_id
                del ic_boundary_tri_end
                del $1188load_global.126
                $1214unpack_sequence.141 = exhaust_iter(value=$1212call_function.138, count=2) :: UniTuple(int64 x 2)
                del $1212call_function.138
                $1214unpack_sequence.139 = static_getitem(value=$1214unpack_sequence.141, index=0, index_var=None) :: int64
                $1214unpack_sequence.140 = static_getitem(value=$1214unpack_sequence.141, index=1, index_var=None) :: int64
                del $1214unpack_sequence.141
                num_tri = $1214unpack_sequence.139 :: int64
                del $1214unpack_sequence.139
                old_tri = $1214unpack_sequence.140 :: int64
                del $1214unpack_sequence.140
596:
597:         for i in range(ic_bad_tri_end):
            jump 1220
          label 1220
            $1222load_global.1 = global(range: <class 'range'>) :: Function(<class 'range'>)
            $1226call_function.3 = call $1222load_global.1(ic_bad_tri_end, func=$1222load_global.1, args=[Var(ic_bad_tri_end, final_2D_robust_multidimarr.py:590)], kws=(), vararg=None) :: (int64,) -> range_state_int64
            del ic_bad_tri_end
            del $1222load_global.1
            $1228get_iter.4 = getiter(value=$1226call_function.3) :: range_iter_int64
            del $1226call_function.3
            $phi1230.1 = $1228get_iter.4 :: range_iter_int64
            del $1228get_iter.4
            jump 1230
          label 1230
            $1230for_iter.2 = iternext(value=$phi1230.1) :: pair<int64, bool>
            $1230for_iter.3 = pair_first(value=$1230for_iter.2) :: int64
            $1230for_iter.4 = pair_second(value=$1230for_iter.2) :: bool
            del $1230for_iter.2
            $phi1232.2 = $1230for_iter.3 :: int64
            del $1230for_iter.3
            branch $1230for_iter.4, 1232, 1254
          label 1232
            del $1230for_iter.4
            i = $phi1232.2 :: int64
            del $phi1232.2
598:             t = ic_bad_tri[i]
                $1238binary_subscr.5 = getitem(value=ic_bad_tri, index=i) :: int64
                del i
                t = $1238binary_subscr.5 :: int64
                del $1238binary_subscr.5
599:             bad_tri_indicator_arr[t] = False
                $const1242.6 = const(bool, False) :: bool
                bad_tri_indicator_arr[t] = $const1242.6 :: (array(bool, 1d, C), int64, bool) -> none
                del t
                del $const1242.6
                jump 1230
              label 1254
                del $phi1232.2
                del $phi1230.1
                del $1230for_iter.4
                jump 1256
              label 1256
                jump 932
              label 1260
600:
601:     return num_tri
        del vertices_ID
        del v
        del u
        del temp8
        del temp64
        del temp48
        del temp32b
        del temp32a
        del temp16c
        del temp16b
        del temp16a
        del static_filter_o2d
        del static_filter_i2d
        del splitter
        del resulterrbound
        del points
        del orient2d_count
        del old_tri
        del neighbour_ID
        del incircle_count
        del iccerrboundC
        del iccerrboundB
        del iccerrboundA
        del ic_boundary_vtx
        del ic_boundary_tri
        del ic_bad_tri
        del gv
        del fin2
        del fin1
        del cyyab
        del cytbb
        del cytabtt
        del cytabt
        del cytab
        del cytaa
        del cyab
        del cxxab
        del cxtbb
        del cxtabtt
        del cxtabt
        del cxtab
        del cxtaa
        del cxab
        del cdet
        del ccwerrboundC
        del ccwerrboundB
        del ccwerrboundA
        del cc
        del catt
        del cat
        del ca
        del byyca
        del bytcc
        del bytcatt
        del bytcat
        del bytca
        del bytaa
        del byca
        del bxxca
        del bxtcc
        del bxtcatt
        del bxtcat
        del bxtca
        del bxtaa
        del bxca
        del bdet
        del bctt
        del bct
        del bc
        del bb
        del bad_tri_indicator_arr
        del ayybc
        del aytcc
        del aytbctt
        del aytbct
        del aytbc
        del aytbb
        del aybc
        del axxbc
        del axtcc
        del axtbctt
        del axtbct
        del axtbc
        del axtbb
        del axbc
        del adet
        del abtt
        del abt
        del abdet
        del ab
        del aa
        del D
        del C2
        del C1
        del B
        del $phi936.1
        del $phi932.0
        del $932for_iter.3
        jump 1262
      label 1262
        $1264return_value.1 = cast(value=num_tri) :: int64
        del num_tri
        return $1264return_value.1